12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <?php
-
-
- namespace crmeb\traits;
-
-
- use crmeb\utils\Queue;
-
- /**
- * 快捷加入消息队列
- * Trait QueueTrait
- */
- trait QueueTrait
- {
-
- /**
- * 列名
- * @return string
- */
- protected static function queueName()
- {
- return null;
- }
-
- /**
- * 加入队列
- * @param $action
- * @param array $data
- * @param string|null $queueName
- * @return mixed
- */
- public static function dispatch($action = null, array $data = [], string $queueName = null)
- {
- $queue = Queue::instance()->job(__CLASS__);
- if (is_array($action)) {
- $queue->data(...$action);
- } else if (is_string($action)) {
- $queue->do($action)->data(...$data);
- }
- if ($queueName) {
- $queue->setQueueName($queueName);
- } else if (self::queueName()) {
- $queue->setQueueName(self::queueName());
- }
- return $queue->push();
- }
-
- /**
- * 延迟加入消息队列
- * @param int $secs
- * @param $action
- * @param array $data
- * @param string|null $queueName
- * @return mixed
- */
- public static function dispatchSece(int $secs, $action = null, array $data = [], string $queueName = null)
- {
- $queue = Queue::instance()->job(__CLASS__)->secs($secs);
- if (is_array($action)) {
- $queue->data(...$action);
- } else if (is_string($action)) {
- $queue->do($action)->data(...$data);
- }
- if ($queueName) {
- $queue->setQueueName($queueName);
- } else if (self::queueName()) {
- $queue->setQueueName(self::queueName());
- }
- return $queue->push();
- }
-
- /**
- * 加入小队列
- * @param string $do
- * @param array $data
- * @param int|null $secs
- * @param string|null $queueName
- * @return mixed
- */
- public static function dispatchDo(string $do, array $data = [], int $secs = null, string $queueName = null)
- {
- $queue = Queue::instance()->job(__CLASS__)->do($do);
- if ($secs) {
- $queue->secs($secs);
- }
- if ($data) {
- $queue->data(...$data);
- }
- if ($queueName) {
- $queue->setQueueName($queueName);
- } else if (self::queueName()) {
- $queue->setQueueName(self::queueName());
- }
- return $queue->push();
- }
-
- }
|