我正在使用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.');
}
}