見出し画像

cronでcurlコマンド実行(バッチ処理)No.011

業務アプリを構築する上で、検討する事象として、指定した時刻に処理を実行したいことがあります。(一般的にはバッチ処理というものですね)
データを初期化したり、コピーしたり、バックアップ処理をしたり、周期的に実施したい処理の実行です。Linux環境では、cronサービスを利用してコマンドで実行しますが、紹介する方法は、curlコマンドとPHPで記述したサーバサイドの処理ロジックです。画面からAjax操作でPHPに処理を要求する代わりに、curlコマンドでhttpコマンドを実行し、PHPで受けます。
事前に動作検証もコマンド実行でできますので、簡単です。
今回は、複数の方が更新処理を実行したDBのレコードを初期値に戻す操作を指定時刻になったらcronで実行するものです。さくらレンタルサーバでは、ユーザがcron登録できるので、実装してみました。
登録するコマンドは、以下のとおりです。(レンタルサーバなので、localhostではなく、外部からアクセスするURLで指定します)

curl https://sunsun.sakura.ne.jp/webix01/rest_api/ZTEST/ZTEST_init_userinfo.php -XPOST -d 'userid=admin'

GETメソッドでなく、POSTメソッドで実行しています。パラメータも付与できます。
この実装で、1日1回、強制的にDBのデータは初期値に戻るようになります。
画面上のボタン(初期化)と同じ動作です

この記事が気に入ったらサポートをしてみませんか?