我们目前正在开发一款带有google appengine for 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();