Попробуйте следующее регулярное выражение:
(?P[\w-]+?)\s*=\s*{(?:{| {\[})?\s*(?P.*?)(?:,])?\s*}{1,2}
В моем тесте оно соответствует всем 3 вашим образцам.
Рабочий пример (содержащий проверку регулярного выражения выше) см. В https://regex101.com/r/Gy8IWu/1
. конкретные части тестируемого регулярного выражения и то, что было сопоставлено.
Регулярное выражение, соответствующее всем 3 вариантам, согласно вашему комментарию:
(?P[\w-]+?)\s*=\s*{{1,2}\s*(?P(?:{\[})?.*?)\s*}{1,2}
Смотрите обновленный пример: https://regex101.com/r / Gy8IWu / 2
Реальное промежуточное программное обеспечение организации очередей сообщений как WebSphere MQ или MSMQ предлагает "триггеры", где сервис, который является частью MQM, запустит рабочего, когда новые сообщения будут помещены в очередь.
AFAIK, никакая система массового обслуживания "веб-сервиса" не может сделать это по природе зверя. Однако я только трудно посмотрел на SQS. Там необходимо опросить очередь, и в случае Amazon чрезмерно нетерпеливый опрос собирается стоить Вам некоторый реальный $$.
Я помогал другу, который работает над проектом, который включает в себя очередь на основе Gearman, которая будет отправлять различные асинхронные задания различным демонам PHP и C на пуле из нескольких серверов.
Рабочие процессы были разработаны так, чтобы вести себя так же, как классические демоны unix / linux, благодаря простым сценариям оболочки в /etc/init.d/ и командам вроде:
invoke-rc.d myWorker start | stop | restart | reload
Этот механизм прост и эффективен. И поскольку он полагается на стандартные функции Linux, даже люди с ограниченными знаниями о вашем приложении могут запустить демон или остановить его, если они знают, как он называется системно (он же «myWorker» в приведенном выше примере).
Другой Преимущество этого механизма в том, что он также упрощает управление пулом ваших рабочих. На вашем компьютере может быть 10 демонов (myWorker1, myWorker2,. ..) и запускать или останавливать их "диспетчером рабочих" в зависимости от длины очереди. И поскольку эти команды можно запускать через ssh, вы можете легко управлять несколькими серверами.
Это решение может показаться дешевым, но если вы создадите его с хорошо закодированными демонами и надежными сценариями управления, я не понимаю, почему это будет менее эффективны, чем дорогостоящие решения для любого среднего (например, «некритического») проекта.