2013-12-08 20 views
5

Per lavoratori intendo uno script python che esegue alcune attività in un ciclo infinito. Questo script dovrebbe essere distribuito su un'istanza EC2 separata ed essere eseguito per sempre (forse usando supervisore).Posso utilizzare Elastic Beanstalk per distribuire i lavoratori?

Sto utilizzando con successo Elastic Beanstalk per distribuire l'app Web con git aws.push e questo funziona correttamente. Tuttavia, il set-up per un lavoratore deve essere un po 'diverso, perché gli non hanno bisogno di un server web o di un IP elastico. Sono anche iniziati con un comando diverso.

Da quello che ho letto penso che quello che voglio sia molto simile ai dynos di lavoro di Heroku rispetto ai web dynos, ma non ho nemmeno alcuna esperienza con Heroku, quindi potrei sbagliarmi.
Quindi è possibile con Elastic Beanstalk? O dovrei usare qualcosa di completamente diverso per la distribuzione?

A proposito, sto usando linux e la CLI di Elastic Beanstalk.

risposta

3

Non credo Elastic Beanstalk ha lo stesso concetto come dynos lavoratore di Heroku e dynos web (anche se non credo che queste si riferiscono al caso in cui si sta tentando di eseguire il processo di lavoro personalizzato)

Come significa che puoi dirigere i tuoi lavoratori da qualche altra parte. (Istanza EC2, proprio server cloud, alcuni SAS personalizzati, ecc.)

Sidekiq/rescue (nel mondo rubino) è qualcosa di equivalente a far funzionare i lavoratori in modo indipendente. Puoi provare questo approccio descritto in questo blog e applicarlo al tuo lavoratore specifico.

+0

Grazie per la risposta. Perché pensi che i dynos di lavoro di Heroku siano diversi da quello che voglio? Per quanto ho capito, sono come un'istanza di ec2 che esegue alcuni comandi personalizzati. –

+0

Non mi piace molto l'approccio nel post del blog, perché preferirei aggiungere le istanze di worker/web in modo indipendente. Ma comunque, se il beanstalk elastico non lo supporta, mi limiterò a distribuire i lavoratori usando qualcos'altro. –

+0

Credo che aggiungere più dynos significhi solo aggiungere più potenza di elaborazione all'applicazione, ma non fornisce un controllo granulare sul numero di lavoratori in esecuzione all'interno dell'applicazione. È più come un alto livello di potenza di elaborazione. Ma vedo quello che stai dicendo, nel tuo caso suppongo che tu possa implementare una seconda applicazione di heroku che rappresenti i tuoi lavoratori (l'applicazione principale è il tuo servizio web che gli utenti dei lavoratori). In questo modo se hai bisogno di più "potere" dei lavoratori, puoi semplicemente aumentare i dynos. – Rico

9

La possibilità di distribuire processi in background (worker) su ElasticBeanstalk è stata appena introdotta l'11 dicembre.

Date un'occhiata a l'annuncio: http://aws.typepad.com/aws/2013/12/background-task-handling-for-aws-elastic-beanstalk.html

e la documentazione: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features-managing-env-tiers.html

+0

Come si confronta per creare un lavoro di lavoro in Heroku rispetto a crearne uno in un lavoratore ambiente in fagiolo magico? – Guillermo

Problemi correlati