| 123456789101112131415161718192021222324252627282930313233343536373839 |
- <?php
- namespace app\job;
- use think\Db;
- use think\queue\Job;
- use think\Queue;
- class ImageArrJob
- {
- public function fire(Job $job, $data)
- {
- echo "批量推送任务已开始\n";
- // echo "接收的数据: " . json_encode($data) . "\n";
- //任务分解
- foreach ($data as $key => $value){
- // 推送队列前,记录日志
- $id = Db::name('queue_log')->insertGetId([
- 'job_name' => 'app\job\ImageJob',
- 'status' => 0,
- 'data' => json_encode($value, JSON_UNESCAPED_UNICODE),
- 'created_at' => date('Y-m-d H:i:s'),
- ]);
- // 将日志ID传入队列中
- $value['log_id'] = $id;
- Queue::push('app\job\ImageJob', $value,"imgtotxt");
- }
- echo "批量推送任务结束\n";
- $job->delete();
- }
- /**
- * 任务失败时的处理
- */
- public function failed($data)
- {
- // 记录失败日志或发送通知
- \think\Log::error("ImageJob failed: " . json_encode($data));
- }
- }
|