Helper.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace UCore\Queue;
  3. use UCore\Helper\Logger;
  4. use UCore\Model\JobRun;
  5. /**
  6. * 队列助手类
  7. *
  8. * 用于处理队列任务的日志记录
  9. */
  10. class Helper
  11. {
  12. /**
  13. * 添加队列任务日志
  14. *
  15. * @param string $status 任务状态
  16. * @param string $queue 队列名称
  17. * @param string $runclass 运行类名
  18. * @param mixed $payload 任务数据
  19. * @param string $desc 描述信息
  20. * @param float $runtime 运行时间
  21. * @return void
  22. */
  23. public static function add_log(
  24. string $status,
  25. string $queue,
  26. string $runclass,
  27. mixed $payload,
  28. string $desc = '',
  29. float $runtime = 0
  30. ): void {
  31. Logger::info("jon run $runclass : $status - $desc");
  32. if (!is_string($payload)) {
  33. $payload = serialize($payload);
  34. }
  35. $model = new JobRun();
  36. $model->status = $status;
  37. $model->payload = $payload;
  38. $model->queue = $queue ?? "";
  39. $model->runclass = $runclass;
  40. $model->attempts = 0;
  41. $model->available_at = 0;
  42. $model->created_at = time();
  43. $model->desc = $desc;
  44. $model->runtime = round(max($runtime, 0.0001) * 1000, 5);
  45. $model->save();
  46. }
  47. }