1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
DelayParam.php
См. документацию.
1
<?php
2
3
declare(strict_types=1);
4
5
namespace
Bitrix\Main\Messenger\Entity\ProcessingParam
;
6
7
use
Bitrix\Main\Messenger\Entity\MessageBox
;
8
use
Bitrix\Main\Type\Date
;
9
use
Bitrix\Main\Type\DateTime
;
10
11
class
DelayParam
implements
ProcessingParamInterface
12
{
16
public
function
__construct
(
public
readonly
int
$delay)
17
{
18
}
19
20
public
static
function
delayFor
(\DateInterval $interval): self
21
{
22
$now = new \DateTimeImmutable(
'now'
,
new
\DateTimeZone(
'UTC'
));
23
$end = $now->add($interval);
24
25
return
new
self
($end->getTimestamp() - $now->getTimestamp());
26
}
27
28
public
static
function
delayUntil
(
Date
$dateTime): self
29
{
30
return
new
self
($dateTime->
getTimestamp
() - time());
31
}
32
33
public
function
applyTo
(
MessageBox
$messageBox):
MessageBox
34
{
35
if
($this->delay > 0)
36
{
37
$availableAt =
new
DateTime
();
38
39
$availableAt->add(sprintf(
'+%d seconds'
, $this->delay));
40
41
$messageBox->
setAvailableAt
($availableAt);
42
}
43
44
return
$messageBox;
45
}
46
}
Bitrix\Main\Messenger\Entity\MessageBox
Определения
MessageBox.php:16
Bitrix\Main\Messenger\Entity\MessageBox\setAvailableAt
setAvailableAt(DateTime $availableAt)
Определения
MessageBox.php:103
Bitrix\Main\Messenger\Entity\ProcessingParam\DelayParam
Определения
DelayParam.php:12
Bitrix\Main\Messenger\Entity\ProcessingParam\DelayParam\delayFor
static delayFor(\DateInterval $interval)
Определения
DelayParam.php:20
Bitrix\Main\Messenger\Entity\ProcessingParam\DelayParam\delayUntil
static delayUntil(Date $dateTime)
Определения
DelayParam.php:28
Bitrix\Main\Messenger\Entity\ProcessingParam\DelayParam\__construct
__construct(public readonly int $delay)
Определения
DelayParam.php:16
Bitrix\Main\Messenger\Entity\ProcessingParam\DelayParam\applyTo
applyTo(MessageBox $messageBox)
Определения
DelayParam.php:33
Bitrix\Main\Type\Date
Определения
date.php:9
Bitrix\Main\Type\Date\getTimestamp
getTimestamp()
Определения
date.php:218
Bitrix\Main\Type\DateTime
Определения
datetime.php:9
Bitrix\Main\Messenger\Entity\ProcessingParam\ProcessingParamInterface
Определения
ProcessingParamInterface.php:10
Bitrix\Main\Messenger\Entity\ProcessingParam
Определения
DelayParam.php:5
bitrix
modules
main
lib
Messenger
Entity
ProcessingParam
DelayParam.php
Создано системой
1.14.0