• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/posting/threadstrategy/abstractthreadstrategy.php
  • Класс: Bitrix\Sender\Posting\ThreadStrategy\AbstractThreadStrategy
  • Вызов: AbstractThreadStrategy::lockThread
public function lockThread(): void
{
	if(!static::checkLock())
	{
		return;
	}
	$thread = PostingThreadTable::getList(
		[
			"select" => ["THREAD_ID"],
			"filter" => [
				'=POSTING_ID' => $this->postingId,
				[
					'LOGIC' => 'OR',
					[
						'=STATUS' => PostingThreadTable::STATUS_NEW,
					],
					[
						'=STATUS'    => PostingThreadTable::STATUS_IN_PROGRESS,
						' new DateTime()
					]
				]
			],
			"limit"  => 1
		]
	)->fetchAll();

	if (!isset($thread[0]) && !isset($thread[0]["THREAD_ID"]))
	{
		return;
	}
	$this->threadId = $thread[0]["THREAD_ID"];
	$this->updateStatus(PostingThreadTable::STATUS_IN_PROGRESS);
	$this->unlock();
}