Оптимизация расходов Google Appengine
В настоящее время мы разрабатываем приложение с 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();