2014-02-11 6 views
1

Мой сайт размещен на AWS Elastic Beanstalk (PHP). Я использую Yii Framework как MVC.Использование IronWorkers при использовании моей работы

Некоторое время назад я хотел каждый раз запускать SQL-запрос. Я посмотрел, как управлять кронами на Beanstalk, и казалось, что сложно объединить концепции Cloud и Cron. Я столкнулся с Iron Worker (http://www.iron.io/worker) и сумел создать рабочего, который в настоящее время отлично справляется со своей работой.

Сегодня я хочу, чтобы запустить более сложный хрон (Посмотрите на уведомления в моей базе данных, решить, следует ли отправить по электронной почте, создать шаблон электронной почты и отправить по электронной почте (через AWS СЭС).

Из того, что я понимаю, , рабочие файлы должны быть автономными элементами, и все, что им нужно для работы. Однако я потратил много времени и сил на создание своего MVC. У меня есть сложные модели, проверки, механизм шаблонов электронной почты и т. д. .. Кажется очень трудно использовать работу, которую я сделал, чтобы создать Iron Worker. Даже если мне удалось перенести весь мой код на рабочего (что кажется большой работой), это означает, что в любое время я делаю изменения моего основного кода Мне нужно убедиться, что у работника также есть hanges. Это означает, что у меня будет «ветвь» моего кода. Тем более, если я хочу создать больше рабочих в будущем.

Каков правильный подход?

ответ

2

Краткосрочные, скорее всего, вы можете использовать возможности планирования в IronWorker и заставить работника ударить конечную точку в вашем приложении. Затем конечная точка запускает операции, которые будут выполняться в среде приложения.

Долгосрочные, мы предлагаем вам взглянуть на более ориентированный на обслуживание подход, благодаря которому вы разрываете приложение, чтобы быть более свободным и распределенным. Вот сообщение на эту тему. К преимуществам относятся многие особенности масштабируемости и гибкости разработки.

https://blog.heroku.com/archives/2013/12/3/end_monolithic_app

Вы также можете посмотреть на это YII дополнение.

http://www.yiiframework.com/extension/yiiron/

Конечно не хочу, чтобы вы переписать приложение без необходимости, но есть вероятные области, где вы можете посмотреть разъединить. Предложите создать рабочий каталог и приложить усилия, чтобы написать работникам, чтобы они были самодостаточными. Таким образом, вы можете запускать их в другой среде и просто передавать полезную нагрузку работнику. (Push-очереди также могут использоваться для нажатия на этих рабочих.) Как только вы привыкнете к распределенной обработке асинхронных операций, это довольно простой процесс управления.

(Примечание: работаю на Iron.io)