OrderJob.php 786 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace crmeb\jobs;
  3. use crmeb\interfaces\JobInterface;
  4. use think\queue\Job;
  5. /**
  6. * 订单消息队列
  7. * Class OrderJob
  8. * @package crmeb\jobs
  9. */
  10. class OrderJob implements JobInterface
  11. {
  12. public function fire(Job $job, $data): void
  13. {
  14. $job->delete();
  15. $action = $data['action'] ?? '';
  16. $infoData = $data['data'] ?? [];
  17. if (!$action) {
  18. $action = 'doHelloJob';
  19. }
  20. if ($this->{$action}($infoData))
  21. $job->delete();
  22. else {
  23. if ($job->attempts() > 3)
  24. $job->delete();
  25. }
  26. }
  27. /**
  28. * 执行
  29. * @param $data
  30. * @return bool
  31. */
  32. public function doHelloJob($data)
  33. {
  34. event('OrderPaySuccess', $data);
  35. return true;
  36. }
  37. }