& ldquo; Fork and Join & rdquo; с серверными функциями (например, AWS Lambda) / Python

Да, это возможно с помощью массива-casting объекта stdClass:

$data =  new stdClass;
$data->{"12"} = 37;
$data = (array) $data;
var_dump( $data );

Это дает вам (до версии PHP 7.1):

array(1) {
  ["12"]=>
  int(37)
}

( Обновление: мой оригинальный ответ показал более сложный способ, используя json_decode() и json_encode(), который не нужен.)

Обратите внимание на комментарий: К сожалению, невозможно напрямую ссылаться на значение: $data['12'] вы получите уведомление.

Обновление: из PHP 7.2 на нем также можно использовать числовую строку в качестве ключа для ссылки на значение:

var_dump( $data['12'] ); // int 32
1
задан David Carboni 18 March 2019 в 18:22
поделиться

1 ответ

Вы можете добавить микросхемы в очередь с помощью Amazon SQS, и работники или Lambdas будут вытаскивать эти отдельные задания из очереди. Затем вы можете настроить оповещение cloudwatch, которое контролирует глубину вашей очереди, где нулевая глубина очереди (задание выполнено) запускает лямбду «завершения», которая объединит отдельные выходные микросхемы.

Я полагаю, что CloudWatch предупреждает о состояниях очереди опроса с 5-минутными интервалами, поэтому для вашего случая использования, когда у вас длительное время обработки (~ 10-15 минут), здесь не будет узким местом (лямбда-тайм-ауты В любом случае, 15 минут, так что если вы установите опрос на 15 минут, ваша лямбда либо потерпит неудачу, либо будет завершена к тому времени).

Шаг за шагом, как это будет выглядеть:

  1. Загрузка нового файла на S3
  2. Загрузка запускает лямбду, чтобы разбить файл на «фишки» "в новой папке
  3. Добавить все микросхемы в новую очередь
  4. Лямбды извлекают микросхемы из очереди
  5. , когда очередь пуста, запускать конгломерацию лямбда
[ 1111] Вот еще один полезный ответ по настройке триггеров на основе состояния очереди: Эффективный способ проверить, пуста ли очередь SQS

0
ответ дан nmwalsh 18 March 2019 в 18:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: