YsbangStoreJobs.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace App\Jobs\Manager\CollectData;
  3. use Illuminate\Bus\Queueable;
  4. use Illuminate\Contracts\Queue\ShouldBeUnique;
  5. use Illuminate\Contracts\Queue\ShouldQueue;
  6. use Illuminate\Foundation\Bus\Dispatchable;
  7. use Illuminate\Queue\InteractsWithQueue;
  8. use Illuminate\Queue\SerializesModels;
  9. use App\Facades\Servers\Logs\Log;
  10. use App\Models\Manager\Ysbang\Store as YsbangStoreModel;
  11. use App\Jobs\Manager\CollectData\YsbangProductDataJobs;
  12. /**
  13. * 采集数据-药师帮店铺数据
  14. * @author 唐远望
  15. * @version 1.0
  16. * @date 2026-02-05
  17. */
  18. class YsbangStoreJobs implements ShouldQueue
  19. {
  20. use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
  21. protected $message_data;
  22. /**
  23. * Create a new job instance.
  24. *
  25. * @return void
  26. */
  27. public function __construct(array $message_data)
  28. {
  29. $this->message_data = $message_data;
  30. }
  31. /**
  32. * Execute the job.
  33. *
  34. * @return void
  35. */
  36. public function handle()
  37. {
  38. $YsbangStoreModel = new YsbangStoreModel();
  39. $list_data = $this->message_data;
  40. if (empty($list_data)) return true;
  41. try {
  42. foreach ($list_data as $key => $item) {
  43. YsbangProductDataJobs::dispatch($item);
  44. // YsbangProductDataJobs::dispatchSync($insert_data);
  45. }
  46. } catch (\Exception $e) {
  47. Log::info('job_error', '采集数据-药师帮店铺数据同步队列失败', ['error' => $e->getMessage()]);
  48. }
  49. }
  50. public function failed(\Throwable $exception)
  51. {
  52. Log::info('job_error', '采集数据-药师帮店铺数据同步队列完全失败', ['data' => $this->message_data, 'error' => $exception]);
  53. }
  54. }