0

現在、Google appengine for PHP を使用してアプリを開発しており、コストを最適化したいと考えています。

1 日に数回 (朝、夕方、真夜中)、バックグラウンド タスクによって開始される大量の計算があります。サブタスクはそれぞれ約 3 ~ 5 分かかり、同時に使用されるインスタンスの数をできるだけ少なくするためにシリアル化されます (つまり、終了したサブタスクはクエリに次のサブタスクを置きます)。ただし、それはかなり長い計算時間につながります。

インスタンスのコストが高くなる時間帯 (真夜中など) はありますか? もう少しコストを節約する方法はありますか? 独立した計算を別の順序で並べ替えるなど、計算時間を改善する方法はありますか?

前もって感謝します!

編集: コード例 - すべての背景ファイルは次のようになります

require_once 'google/appengine/api/taskqueue/PushTask.php';
use google\appengine\api\taskqueue\PushTask;

$cron_data = get_cron_data();
if(empty($cron_data)) {
  end_cronjob($cron_data["cron_id"]);
  exit();
}

$data_array = db_select ( "SELECT * FROM db_table WHERE id > ". 
               $cron_data["data_id"] ." ORDER BY id ASC LIMIT 5");
if(empty($data_array)) {
  end_cronjob($cron_data["cron_id"]);
  exit();
}

foreach($data_array as $d) {
  calculate($d);
  update_cronjob($cron_data["cron_id"], $d["data_id"]);
}

$task = new PushTask('/this_task', ["cron_id" =>  $cron_data["cron_id"]]);
$task_name = $task->add();
exit();
4

0 に答える 0