1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
pushdelayedrule.php
См. документацию.
1
<?php
2
3
namespace
Bitrix\Calendar\Core\Queue\Rule\Rules
;
4
5
use
Bitrix\Calendar\Core\Queue\Interfaces
;
6
use
Bitrix\Calendar\Core\Queue\Message\Dictionary
;
7
use
Bitrix\Calendar\Core\Queue\Queue
;
8
use
Bitrix\Calendar\Sync\Managers\PushManager
;
9
use
Bitrix\Calendar\Sync
;
10
11
class
PushDelayedRule
extends
DbRule
12
{
13
private
const
MODE_SECTION = 1;
14
private
const
MODE_CONNECTION = 2;
15
21
protected
function
getTargetQueue
(
Interfaces
\
Message
$message
): ?Queue\Queue
22
{
23
switch
($this->getMode(
$message
))
24
{
25
case
self::MODE_SECTION:
26
return
(
new
Queue\
QueueFactory
())
27
->getById(Queue\QueueRegistry::QUEUE_LIST[
'DelayedSyncSection'
]);
28
case
self::MODE_CONNECTION:
29
return
(
new
Queue\
QueueFactory
())
30
->getById(Queue\QueueRegistry::QUEUE_LIST[
'DelayedSyncConnection'
]);
31
default
:
32
return
null
;
33
}
34
}
35
41
protected
function
getMessageHash
(
Interfaces
\
Message
$message
): string
42
{
43
$body =
$message
->getBody();
44
switch
($this->getMode(
$message
))
45
{
46
case
self::MODE_SECTION:
47
return
'section:'
. $body[
Sync\Push\Dictionary::PUSH_TYPE
[
'sectionConnection'
]] ??
''
;
48
case
self::MODE_CONNECTION:
49
return
'connection:'
. $body[
Sync\Push\Dictionary::PUSH_TYPE
[
'connection'
]] ??
''
;
50
default
:
51
return
''
;
52
}
53
}
54
60
private
function
getMode(
Interfaces
\
Message
$message
): ?int
61
{
62
$routingKey =
$message
->getHeader(Dictionary::HEADER_KEYS[
'routingKey'
]);
63
if
($routingKey === PushManager::QUEUE_ROUTE_KEY_SECTION)
64
{
65
return
self::MODE_SECTION;
66
}
67
elseif
($routingKey === PushManager::QUEUE_ROUTE_KEY_CONNECTION)
68
{
69
return
self::MODE_CONNECTION;
70
}
71
72
return
null
;
73
}
74
}
Bitrix\Calendar\Core\Queue\Message\Dictionary
Определения
dictionary.php:6
Bitrix\Calendar\Core\Queue\Queue\QueueFactory
Определения
queuefactory.php:6
Bitrix\Calendar\Core\Queue\Rule\Rules\DbRule
Определения
dbrule.php:12
Bitrix\Calendar\Core\Queue\Rule\Rules\PushDelayedRule
Определения
pushdelayedrule.php:12
Bitrix\Calendar\Core\Queue\Rule\Rules\PushDelayedRule\getMessageHash
getMessageHash(Interfaces\Message $message)
Определения
pushdelayedrule.php:41
Bitrix\Calendar\Core\Queue\Rule\Rules\PushDelayedRule\getTargetQueue
getTargetQueue(Interfaces\Message $message)
Определения
pushdelayedrule.php:21
Bitrix\Calendar\Sync\Google\PushManager
Определения
pushmanager.php:21
Bitrix\Calendar\Sync\Push\Dictionary\PUSH_TYPE
const PUSH_TYPE
Определения
dictionary.php:8
Bitrix\Calendar\Core\Queue\Interfaces\Message
Определения
message.php:16
Bitrix\Calendar\Core\Queue\Interfaces
Определения
consumer.php:3
Bitrix\Calendar\Core\Queue\Queue
Определения
queue.php:3
Bitrix\Calendar\Core\Queue\Rule\Rules
Определения
dbrule.php:3
Bitrix\Calendar\Sync
$message
$message
Определения
payment.php:8
elseif
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения
prolog_main_admin.php:393
bitrix
modules
calendar
lib
core
queue
rule
rules
pushdelayedrule.php
Создано системой
1.14.0