概要
このブログで現在使用しているサーバーはスタードメインでドメインを購入すると使用できる無料レンタルサーバーを使っています。無料で使えるにもかかわらずPHPとMySQLにも対応しているのでWordPressが利用できます。このブログもWordPressを利用して作成しています。こちらの無料サーバーではcronも使えるのですが一つしか登録することが出来ず、一つのcronで一度にたくさんのスクリプトを実行するとサーバーに負担がかかりそうなので時間を分散させてスクリプトを呼び出す起点となるPHPのスクリプトを作成してみました。
cronの設定
ここからはスタードメインでドメインを購入すると使用できる無料レンタルサーバーを使用しての話として進めていきます。cronの設定方法はスターサーバーのこちらのページに書かれています。無料サーバーでは実行間隔の最小時間は20分なので分を設定する部分を[00,20,40]とし、時間から曜日はすべて[*]として毎日毎時間実行させる設定にします。
cron実行時に呼び出すテスト用のスクリプトを作成
cronが実行されるとメールを送信するスクリプトを作成しました。
1 2 3 4 5 6 |
<?php $to = ""; // ここに受信するメールアドレスを入力してください $subject = "TEST MAIL"; $message = "test"; mail($to, $subject, $message); |
2行目の$to変数にメールアドレスを入力するとそこへメールが届きます。
起点となるスクリプトを作成
date関数を使い現在時刻を取得しif文で分岐をさせスクリプトを分散させて実行させます。
最小間隔の20分毎に実行するには起点となるスクリプトにそのまま実行したいスクリプトを呼び出します。
1 2 |
// 20分毎に実行する include('./sendMail.php'); |
一時間に一回実行するにはcron設定の分で指定した数値で分岐させます。
1 2 3 4 5 6 7 8 9 10 11 |
// タイムゾーンの設定 date_default_timezone_set('Asia/Tokyo'); // 一時間に一回実行する if ('00' === date('i')) { // 毎時間00分に実行される } else if ('20' === date('i')) { // 毎時間20分に実行される } else if ('40' === date('i')) { // 毎時間40分に実行される } |
一日に一回実行するには時間と分を指定して分岐させます。
1 2 3 4 5 6 7 |
// タイムゾーンの設定 date_default_timezone_set('Asia/Tokyo'); // 一日に一回実行する if ('0000' === date('Hi')) { // 毎日00時00分に実行する } |
月に一度実行するには日付と時間と分を指定して分岐させます。
1 2 3 4 5 6 7 |
// タイムゾーンの設定 date_default_timezone_set('Asia/Tokyo'); // 月に一度実行する if ('010000' === date('dHi')) { // 毎月一日の00時00分に実行する } |
最後までお読みいただきありがとうございました。