• No : 23359
  • 公開日時 : 2015/12/17 09:11
  • 更新日時 : 2018/04/09 17:00
  • 印刷

【DataSpider Servista】 ある期間内で実行されるスクリプトの回数を一定にしたいと考えています

ある期間内で実行されるスクリプトの回数を一定にしたいと考えています。スケジュールトリガーのインターバル設定で[スクリプト実行中の場合、終了後実行する]を指定した場合、スクリプトの処理の所要時間にかかわらず、実行回数は保証されますか。
 
たとえばスクリプト実行中に次の実行のタイミングが来た場合、実行するべきスクリプトは待機扱いになり、実行可能な状態になったときに連続で実行されますか。
 
カテゴリー : 

回答

スケジュールトリガーのインターバル設定では、1 秒ごとに状況を確認し、条件を満たしている場合にスクリプトを実行します。実行するスクリプトを待機扱いで保持する仕組みはありません。
 
ただし、[スクリプト実行中の場合、終了後実行する]を指定し、5 分おきにスクリプトを実行するように設定している場合に、あるタイミングではスクリプトの開始から終了までに 10 分かかり、次のタイミングの実行が 1 分で終了した場合には、発火予定時刻が現在時刻よりも前のときには連続で実行されるため待機状態であるように見えます。
 
■対処方法
 
特定の期間内で実行されるスクリプトの数を一定にしたい場合には、以下のいずれかでご対応をお願いいたします。
  • ・[スクリプト実行中であっても、一定間隔で実行する]を指定する
  • ・実行するタイミングごとに日単位のスケジュールトリガーを設定する
期間に関わらず実行回数を保証したい場合には、[スクリプト実行中の場合、終了後実行する]を指定していてもスクリプトの処理の所要時間の所要時間に関わらず、保証されます。
 
■補足
 
[スクリプト実行中の場合、終了後実行する]を指定している場合、以下のすべての条件を満たすときにスクリプトを実行します。
  1. トリガーの状態が「待機中」
  2. 発火予定時刻が[実行時間]の範囲内
  3. 現在時刻が発火予定時刻を過ぎている
スクリプトの実行中に発火予定時刻になった場合、トリガーは「実行中」のため(条件1.に該当しない)、新規にスクリプトを実行しません。スクリプトの実行が終了して、トリガーの状態が「待機中」になったタイミングでスクリプトを実行します。
 
「発火予定時刻」の取得方法については FAQ No.26044 をご参照ください。
 
 
参考情報
 
・FAQ No.26044
 
目的別で検索
設定