- Модуль: 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();
}