0

我们目前正在使用 google appengine 为 PHP 开发一个应用程序,并希望优化我们的成本。

一天中有几次(早上、晚上、午夜),我们有大量的计算是由后台任务启动的。每个子任务大约需要 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