TNC Cron Jobs Management Module
■ 定時処理の内容部分とその実施日時の設定・管理部分を切り離す
■ 定時処理の実施日時の設定・管理をプログラム修正無しで可能にする
モジュールの概要
TNC Cron Jobs Management Module は、サイト管理者に対して、複数の定時処理の各々について、その実施日時等の設定・管理機能を提供するものです。具体的には、定時処理の内容部分とその実施日時の設定・管理部分を切り離し、各定時処理のオン・オフやその実施日時の設定・変更等、個々の定時処理の管理については、サイト管理者が、プログラム修正無しで、Web インターフェース経由でできるようにしています。つまり、当モジュールの利用とその規約に合わせた定時処理プログラムの配置により、定時処理の内容自体はこれまでと同様にプログラミングする必要があるとしても、定時処理の実施日時等については、サイト管理者が、サイトのアクセス状況や作業スケジュール等に合わせて、柔軟かつ迅速に設定・変更できるようになるわけです。
開発履歴
2015年05月10日 当ページ(以下)に、新規設定・登録フォームのスクリーンキャプチャーと関連する操作・仕様についての説明を追加しました。
2015年04月22日 LAUNCH|当サイトにて、実運用を開始しました。Information No.0032
補足説明
以下は、当モジュールの設定画面などのスクリーンキャプチャーとそれに付随する操作や仕様などについての若干の説明です。


■[画面1]新規設定の登録フォーム(上部)

次の画面は、新規設定の登録フォームの上半分です。
setting form - base
「Cron Job Name」欄と「Description」欄は、管理者の方のための管理・記憶を容易にするためのものです。その次の「Function Name Key」欄は、このモジュールが実行するべき処理を特定するためのものです。具体的には、処理実行時に、このモジュールの規約に基づいて、ここで指定したキーに対応した特定のファイルと関数を読み込み・実行します。つまり、そのファイル・関数に、この設定で実行するべき処理内容(プログラム)を記述することになります。設定時などにおいて、このファイル・関数が存在しない場合には、実行可能状態にならない(強制的に OFF にする)ようになっています。その次の「Execution Type」欄は、処理のタイプとして「一回のみ実行」か「定期的繰り返し実行」かを選んでいただくためのものです。「Only Onetime(一回のみ実行)」を選択した場合には、ページ遷移無しで、[画面2]のフォーム が、また、「Regularly(定期的繰り返し実行)」を選択した場合には、ページ遷移無しで、[画面3]のフォーム もしくは [画面4]のフォーム が表示されます。[画面3]のフォーム は、その画面内の「Date or Day」欄で「Date」を選択した場合、[画面4]のフォーム は、その画面内の「Date or Day」欄で「Day」を選択した場合、です。ということで、以下の[画面2][画面3][画面4]は、新規設定の登録フォームの下半分になります。


■[画面2]新規設定の登録フォーム(下部):「一回のみ実行」を設定・登録する場合

「Execution Type」欄で「Only Onetime」を選択します。その結果、「月」「日」「時」「分」を1つずつ指定できるフォームに切り替わります。指定した日時が現在より未来ならば「今年の当該日時」、過去ならば「来年の当該日時」に、一回のみ指定の処理を行います。処理実行後は、自動的に「Status」を OFF にします(それにより、1回のみ実行となります)。ただし、設定自体は保存されたままですので、次回以降、指定日時を変更するなどして ON にすれば、同様の処理が行えます。
setting form - onetime

■[画面3]新規設定の登録フォーム(下部):「定期的繰り返し実行」を設定・登録する場合:(1)月次処理や日次処理などの場合

「Execution Type」欄で「Regularly」を選択し、かつ、「Date or Day」欄で「Date」を選択します(デフォルト)。その結果、「Date」欄のある「定期的繰り返し実行」用のフォームに切り替わり、「月」「」「時」をそれぞれ複数選択できるようになります。「日」は、1 〜 31 日と月末日を複数選択可能です。また、「分」は、「一回のみ実行」用フォームと同じく、1つのみ選択可能です(Drupal の定時処理が、最短で1時間単位であるため)。下の画面の状態では、「月」が全て、かつ、「日」が 1 〜 31 日の全て、かつ、「時」が1つだけ選択された状態ですので、これにより、いわゆる「日次処理」を設定・登録することができます。また、この状態から、「Date」欄において「日」を1つだけ選択された状態にすることで、いわゆる「月次処理」を設定・登録することができます。さらに、「Month」欄において「月」を1つだけ選択された状態にすることで、いわゆる「年次処理」を設定・登録することも可能です。(ただ、「年次処理」は、余程簡易・定型的な処理以外は、「画面2」の「1回のみ実行」で対応する方が現実的であるようには思われます)2 月・4 月・6 月・9 月・11 月における月末日の処理については、(1)存在しない日( 31 日など)が指定された場合には、自動的に無視する(設定としては受け付けるが、実行は行わない)(2)ただし、処理実行日時が1つも存在しないような設定(例えば、指定日時が「 11 月 31 日」のみである場合等)は、設定自体ができない(3)別途、月末日を指定できるオプションを設けて、月に応じた月末日を自動的に特定することで、対応する(これは全ての月に対応)という仕様にしています。さらに、この場合に限らず、設定・登録後には、今後1年間の実行日時を一覧表示するようにしていますので、設定直後を含めて随時、正しく設定されているかどうかを視覚的に確認していただけるようになっています。
setting form - regularly - date

■[画面4]新規設定の登録フォーム(下部):「定期的繰り返し実行」を設定・登録する場合:(2)週次処理などの場合

「Execution Type」欄で「Regularly」を選択し、かつ、「Date or Day」欄で「Day」を選択します。その結果、「Day」欄のある「定期的繰り返し実行」用のフォームに切り替わり、「月」「曜日」「時」をそれぞれ複数選択できるようになります。「曜日」は、日曜日から土曜日を複数選択可能です。下の画面の状態では、「月」が全て、かつ、「曜日」が1つだけ、かつ、「時」が1つだけ選択された状態ですので、これにより、いわゆる「週次処理」を設定・登録することができます。
setting form - regularly - day