Laravel从其他工匠命令调用队列工作人员

时间:2017-12-13 14:16:47

标签: php laravel command queue artisan

我正在使用Laravel 5.4并且我想调用我的队列:从构建脚本开始工作。问题是我想根据服务器上的env变量i设置来确定要使用哪个队列。我可以安全地使用像我写的那样的命令 如果工人停止工作会发生什么。我可以优雅地重新启动工作人员吗? 欢迎提供Anny提示或建议!     

namespace App\Console\Commands;


use Illuminate\Console\Command;
use Illuminate\Support\Facades\Artisan;

class SetupQueueWorker extends Command
{

    protected $signature = 'queue:setup-worker';

    const QUEUE_TO_USE_ENV_KEY = 'USE_QUEUE';

    public function handle()
    {
        //php artisan queue:work --tries=2 --queue=so_test --sleep=5
        $queueToUse = env(self::QUEUE_TO_USE_ENV_KEY);
        if(is_null($queueToUse))
        {
            throw new \RuntimeException('Environment variable to determine which queue should be used is not set. Env key: '.self::QUEUE_TO_USE_ENV_KEY);
        }
        $exit = Artisan::call('queue:work', [
            '--tries' => 2, '--queue' => $queueToUse, '--sleep' => 5
        ]);
        throw new \RuntimeException('Queue worker stopped listing.');
    }


}

0 个答案:

没有答案