Laravel 在队列中创建作业
Laravel create job on queue
我在 Laravel 5.7 上遇到了关于工作和 QUEUE 的问题,
作业正在处理但未进入队列,我在数据库中也看不到任何内容 - 但是,我提到作业发生时没有问题,但范围是在队列中,请。
.env
QUEUE_DRIVER=database
工作
class CreateApplication implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $value;
protected $value1;
protected $value2;
protected $value3;
public $tries = 5;
public function __construct($value, $value1, $value2, $value3)
{
$this->value = $value;
$this->value1 = $value1;
$this->value2 = $value2;
$this->value3 = $value4;
}
public function handle()
{
$url = 'https://somewhere';
$client = new \GuzzleHttp\Client;
$response = $client->post($url, [
'form_params' => [
'session' => $this->value,
'appid' => $this->value1,
'env' => $this->value2,
'nodes' => $this->value3
]
]);
$response = json_decode($response->getBody(), true);
return $response;
}
}
控制器
use App\Jobs\CreateApplication;
...
CreateApplication::dispatch($value, $value1, $value2, $value3)->onQueue('processing');
航站楼
php artisan queue:listen
php artisan queue:table
php artisan queue:failed-table
Migrating: 2018_09_12_182619_create_jobs_table
Migrated: 2018_09_12_182619_create_jobs_table
Migrating: 2018_09_12_191537_create_failed_jobs_table
Migrated: 2018_09_12_191537_create_failed_jobs_table
经过几次尝试后,两个表上的数据库中根本没有数据。
有什么建议吗?
我相信你的控制器应该这样做:
CreateApplication::dispatch($value, $value1, $value2, $value3)->onQueue('processing');
class Job
没有处理程序。
问题与
上的 .env 文件有关
QUEUE_DRIVER=database
在 Laravel 5.7 上看起来应该是
QUEUE_CONNECTION=database
我在 Laravel 5.7 上遇到了关于工作和 QUEUE 的问题,
作业正在处理但未进入队列,我在数据库中也看不到任何内容 - 但是,我提到作业发生时没有问题,但范围是在队列中,请。
.env
QUEUE_DRIVER=database
工作
class CreateApplication implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $value;
protected $value1;
protected $value2;
protected $value3;
public $tries = 5;
public function __construct($value, $value1, $value2, $value3)
{
$this->value = $value;
$this->value1 = $value1;
$this->value2 = $value2;
$this->value3 = $value4;
}
public function handle()
{
$url = 'https://somewhere';
$client = new \GuzzleHttp\Client;
$response = $client->post($url, [
'form_params' => [
'session' => $this->value,
'appid' => $this->value1,
'env' => $this->value2,
'nodes' => $this->value3
]
]);
$response = json_decode($response->getBody(), true);
return $response;
}
}
控制器
use App\Jobs\CreateApplication;
...
CreateApplication::dispatch($value, $value1, $value2, $value3)->onQueue('processing');
航站楼
php artisan queue:listen
php artisan queue:table
php artisan queue:failed-table
Migrating: 2018_09_12_182619_create_jobs_table
Migrated: 2018_09_12_182619_create_jobs_table
Migrating: 2018_09_12_191537_create_failed_jobs_table
Migrated: 2018_09_12_191537_create_failed_jobs_table
经过几次尝试后,两个表上的数据库中根本没有数据。
有什么建议吗?
我相信你的控制器应该这样做:
CreateApplication::dispatch($value, $value1, $value2, $value3)->onQueue('processing');
class Job
没有处理程序。
问题与
上的 .env 文件有关QUEUE_DRIVER=database
在 Laravel 5.7 上看起来应该是
QUEUE_CONNECTION=database