Оптимизация расходов 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();

0 ответов

Другие вопросы по тегам