123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- namespace General\Jobs;
- use General\Helpers\ExcelHelper;
- use General\Services\Export\AbstractDataExportHandle;
- use General\Services\Export\AbstractExportTask;
- use Illuminate\Bus\Queueable;
- use Illuminate\Queue\SerializesModels;
- use Illuminate\Queue\InteractsWithQueue;
- use Illuminate\Contracts\Queue\ShouldQueue;
- use Illuminate\Foundation\Bus\Dispatchable;
- class ExportTaskJob implements ShouldQueue
- {
- use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
- private $task;
- private $export_handle;
- public $tries = 1;
- public $timeout = 300;
- /**
- * Create a new job instance.
- *
- * @return void
- */
- public function __construct(AbstractExportTask $task, AbstractDataExportHandle $handle)
- {
- $this->task = $task;
- $this->export_handle = $handle;
- }
- /**
- * Execute the job.
- *
- * @return void
- */
- public function handle()
- {
- try {
- \Log::info('ExportTaskJob_start_new:'.json_encode($this->task));
- if(count((array)$this->task) == 0){
- \Log::info('ExportTaskJob_start_null_return:'.json_encode($this->task));
- return false;
- }
- \Log::info('ExportTaskJob_start2:'.json_encode($this->export_handle));
- $task_model = $this->task->getModel();
- \Log::info('ExportTaskJob_start3:');
- $this->task->setStatus(AbstractExportTask::running);
- \Log::info('ExportTaskJob_start4:');
- $data = $this->export_handle->getExportData();
- \Log::info('ExportTaskJob_start5:');
- $headers = $this->export_handle->getHeaders();
- \Log::info('ExportTaskJob_start6:');
- $file_name = md5($task_model->id . strtotime($task_model->created_at)) . ".csv";
- $local_path = storage_path('tmp');
- \Log::info('ExportTaskJob_task_id_start:'.$task_model->id);
- ExcelHelper::saveFileCsv($headers, $data, $file_name, $local_path);
- $this->task->saveExportTaskFile($local_path, $file_name);
- unlink($local_path . '/' . $file_name);
- \Log::info('ExportTaskJob_task_id_end:'.$task_model->id);
- } catch (\Exception $e){
- \Log::info('ExportTaskJob_ept:'.$e->getMessage());
- return false;
- }
- }
- }
|