2. Globalcode – Open4education
Me, myself and I
• 18 anos de experiência na plataforma Java:
Servidores de Aplicação (Oracle WebLogic Server),
Tecnologias Java (Tomcat, JMS, JTA, EJB, etc.), Java
Frameworks (Spring, Spring Boot, JPA, Hibernate)
• Startups, E-commerce, Corporativo, Instrutor
• Python newbie
• Atualmente atuando como arquiteto de software na
DB Server
Twitter: @ale_jacques
3. Globalcode – Open4education
Agenda
1. O que é Celery?
2. O que distribuir?
3. Por que distribuir?
4. Componentes e Arquitetura
5. Live coding (ou quase)
4. Globalcode – Open4education
O que é Celery?
• É a biblioteca padrão de facto para tarefas distribuídas (existem
outras)
• É altamente disponível (reconexão, brokers HA, etc.)
• Rápido - se configurado propriamente, atende até milhões de
tasks por minuto
• Customizável - qualquer parte do Celery pode ser estendida
ou substituída por uma implementação própria
5. Globalcode – Open4education
O que distribuir?
• Operações longas
• Queries no BD que podem ser cacheadas (ex. relatórios)
• Chamadas à APIs e serviços externos de forma
assíncrona
• Envio de email/notificações
• Agendamento de tarefas
• Tarefas periódicas e Contrab
6. Globalcode – Open4education
Por que distribuir?
• Diminuição de tempo de resposta
• Offload de carga de processamento
• Retries gratuitos o/
• Independente de localização (mesmo hardware,
outro hardware, outro DC, etc.)