遅延ジョブがサーバーで実行されるたびに、私はpostgreSQLで新しいアイドルプロセスを見ることができます。LaravelジョブはDEALLOCATEにアイドル状態のpostgresqlプロセスを残す
DEALLOCATE pdo_stmt_00000018
は、私が理解しようとした、そしてもう1行(およびhtop
の1つの以上のプロセスが)遅れてキューに入れられた仕事はただ走っていたたびに表示されます:select * from pg_stat_activity;
実行私は見ることができます。
私の仕事の最後の行は次のとおりです。
$this->log->info("Invitation {$this->invitation->uuid} sent");
そして私は、私のログにこれを見ることができますので、すべてのものは大丈夫ですが、それは後にクリーンアップしません。私は毎回 "DEALLOCATE pdo_stmt_00000xxx"というアイドルプロセスを持っています。
この問題を回避するにはどうすればよいですか?これを引き起こしているのは何ですか?ここで
は上司の設定です:
[program:laravel-queue-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/my/site/artisan queue:work --queue=invitation,default --sleep=3 --tries=3
autostart=true
autorestart=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/path/to/my/logs/worker.log
サイドノート:アイドル状態のプロセス私はphp artisan queue:restart
その名前のpdo_stmt_00000xxxできる再利用するプリペアドステートメントを解放するようで、接続を終了しないのですか?多分それはトランザクションに設定されたユーザープールモードでpgbouncerを実行することを意味しますか? –