QueueJob.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace App\Module\LCache;
  3. use UCore\Helper\Logger;
  4. abstract class QueueJob extends \UCore\Queue\QueueJob implements QueueJobInterface
  5. {
  6. use QueueCache;
  7. public function __construct(public array $arg = [])
  8. {
  9. Logger::info('队列任务创建', [
  10. 'job_class' => static::class,
  11. 'args' => $arg
  12. ]);
  13. }
  14. public function payload()
  15. {
  16. Logger::info('队列任务准备执行', [
  17. 'job_class' => static::class,
  18. 'payload' => $this->arg
  19. ]);
  20. return $this->arg;
  21. }
  22. /**
  23. * 使用任务更新
  24. *
  25. * @param $arg
  26. * @return void
  27. */
  28. static protected function jobUpdate($parameter)
  29. {
  30. Logger::info('队列任务更新', [
  31. 'job_class' => static::class,
  32. 'parameter' => $parameter
  33. ]);
  34. $queue = env('CACHE_QUEUE', null);
  35. if ($queue) {
  36. self::dispatch($parameter)->delay(2)->onQueue($queue);
  37. } else {
  38. self::dispatch($parameter)->delay(2);
  39. }
  40. }
  41. }