ユーザーが特定のページをリクエストしたり、ボタンをクリックしたりすると、スクリプトを実行する Laravel 5.1 を使用して記述された Web アプリケーションがあります。これにより、バックグラウンドでスクリプトがアクティブになります。ジョブとキューを使用してこれを試しました。
ここに私のコードチャンクがあります: myjob.php
class myjob extends Job implements SelfHandling, ShouldQueue {
use InteractsWithQueue, SerializesModels;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
//
set_time_limit(0);
$this->writeJobLogs('Error', 'Start Execution');
//Job Processing Code
$this->writeJobLogs('Error', 'End Execution');
}
}
Controller.php
class ManageController extends Controller {
public function testJob(){
$this->dispatch(new myjob());
}
}
ジョブ処理コードの実行には少なくとも 10 分かかると予想されます。コードを実行すると、エラーがスローされた後、以下のようになります。
[Symfony\Component\Process\Exception\ProcessTimedOutException] プロセス ""C:\wamp\bin\php\php5.5.12\php.exe" "artisan" queue:work --queue="default" --delay=0 --memory=128 --sleep=3 --tries=0 --env="local"" がタイムアウトの 60 秒を超えました。
& ジョブ処理コードは、ユーザーの要求に応じて同時に複数回実行されることが予想されます。したがって、キューが正常に機能するのか、それとも他に良い選択肢があるのか については疑問があります。もしそうなら、提案してください。