php - 第一份工作完成后如何运行工作?

原文 标签 php laravel

我在一份工作中有两份工作。现在我需要在第一个工作完成后开始执行第二个工作(在工作中)。在我的场景中,作业链是不可能的。请帮我找出解决方案?

我正在使用 SplitFile::dispatch($this->user_id, $counter); 拆分一个大文件

然后遍历这些文件并发送到作业 ProcessCustomerSync::dispatch($file_path, $user_id, $slices, $dispatch_counter, $last_sync_date, $totalSubscribers, $file);逐个。

问题是第二个工作没有等待第一个完成。所以这个工作没有得到所有需要的数据。我需要在第一个完成后执行第二个

 for($counter=1; $counter<=$slices; $counter++){
      // Splitting file to many for better performance
      SplitFile::dispatch($this->user_id, $counter);
 }

$files = Storage::disk('spaces')->allFiles('storage/klick_sync/'.$user_id);

// $files = glob($path);
Log::channel('command')->info('files'.$files);
$dispatch_counter = 1;

foreach($files as $file){
    $file_path = Storage::disk('spaces')->url($file);
    Log::channel('command')->info('path'.$file_path);
    ProcessCustomerSync::dispatch($file_path, $user_id, $slices, $dispatch_counter, $last_sync_date, $totalSubscribers, $file);
           $dispatch_counter++;
}

最佳答案

您可以安装 supervisor 并准备一个脚本来执行两个独立的作业。您可以按优先级组织它。

关于php - 第一份工作完成后如何运行工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61929296/

相关文章:

laravel - axios 帖子上的 403(禁止)。 Laravel 5.7

php - 如何在while循环中显示数据库中的图像

php - PHP/MySQL:以不同方式对结果进行排序

PHP 全局替换 ereg(i)(_replace)

php - Laravel 从表单传递变量

laravel - Composer - vcs 上请求的包问题

php - 如何使用PHP处理从SQL查询返回的树形结构?

php - 网站上的个性化RSS提要

php - Laravel S3文件上传MimeType问题

php - laravel,如何在注册后在验证器中设置默认值