On this page
バックグラウンドタスクの実行を並列cronプロセスを使用して高速化する方法
LiveAgentのバックグラウンドタスクは、cronによって起動されるjobs.phpによって実行されます。cronをjobs.phpが毎分実行されるように設定していても、一部の操作(例:一括操作)ではその間隔が長すぎる場合があります。
幸いなことに、バックグラウンドタスクはスレッドセーフであり、cronエントリを複数追加することでjobs.phpを並列実行することができます。ただし、同じエントリをcrontabに複数回追加するだけでは、すべてのjobs.phpプロセスが同時に起動してしまいます。
より良い解決策は、毎分すべてを同時に起動するのではなく、10秒ごとに1つのjobs.phpプロセスを起動することです。これを実現するには、crontabを以下のように設定します:
* * * * * /usr/bin/php -q /var/www/liveagent/scripts/jobs.php
* * * * * (sleep 10 ; /usr/bin/php -q /var/www/liveagent/scripts/jobs.php)
* * * * * (sleep 20 ; /usr/bin/php -q /var/www/liveagent/scripts/jobs.php)
* * * * * (sleep 30 ; /usr/bin/php -q /var/www/liveagent/scripts/jobs.php)
* * * * * (sleep 40 ; /usr/bin/php -q /var/www/liveagent/scripts/jobs.php)
* * * * * (sleep 50 ; /usr/bin/php -q /var/www/liveagent/scripts/jobs.php)
これにより6つのプロセスがすべて同時に起動しますが、2番目から6番目のプロセスは、jobs.phpを実行する前に設定された秒数だけスリープします。