выполняющие задачи (1..N) Воркер слушает очереди (1..N) у брокера Особый воркер - celery beat Имеет расписание Ставит задачи в очереди Сохраняет своё состояние Брокер - транспорт между клиентом и воркерами
e r y i m p o r t C e l e r y a p p _ g l o b a l = C e l e r y ( ) a p p _ g l o b a l . c o n f . u p d a t e ( B R O K E R _ U R L = ' m o n g o d b : / / ' ) a p p _ l o c a l = C e l e r y ( ) a p p _ l o c a l . c o n f . u p d a t e ( B R O K E R _ U R L = ' r e d i s : / / ' ) a p p _ g l o b a l . s e t _ c u r r e n t ( ) t a s k _ a . a p p l y _ a s y n c ( ) a p p _ l o c a l . s e t _ c u r r e n t ( ) t a s k _ b . a p p l y _ a s y n c ( )
t a s k @ l o c k e d ( ' l o c k - n a m e ' ) d e f m y _ t a s k ( ) : . . . c l a s s M y T a s k ( L o c k e d T a s k ) : d e f l o c k e d _ r u n ( s e l f ) : . . .
o C l i e n t ( ) d e f l o c k e d ( n a m e , c a p a c i t y ) : d e f _ d e c o r a t o r ( f u n c ) : d e f _ w r a p p e r ( s e l f , * a r g s , * * k w a r g s ) : s e m a p h o r e = z k . S e m a p h o r e ( ' / p a t h ' , n a m e , c a p a c i t y ) i f s e m a p h o r e . a c q u i r e ( b l o c k i n g = F a l s e ) : t r y : r e t u r n f u n c ( s e l f , * a r g s , * * k w a r g s ) f i n a l l y : s e m a p h o r e . r e l e a s e ( ) e l s e : r a i s e s e l f . r e t r y ( c o u n d o w n = 5 ) r e t u r n _ w r a p p e r r e t u r n _ d e c o r a t o r
i n d = T r u e ) @ l o c k e d ( ' s a v e - t o - s t o r a g e - t a s k ' , 1 0 ) d e f s a v e _ t o _ s t o r a g e ( s e l f , d a t a ) : s t o r a g e . s a v e ( d a t a )
e r y i m p o r t T a s k c l a s s L o c k e d T a s k ( T a s k ) : l o c k _ n a m e = N o n e r e t r y _ o n _ l o c k = T r u e d e f r u n ( s e l f , * a r g s , * * k w a r g s ) : l o c k = z k . L o c k ( ' / p a t h ' , s e l f . l o c k _ n a m e ) i f l o c k . a c q u i r e d ( b l o c k i n g = F a l s e ) : t r y : r e t u r n s e l f . l o c k e d _ r u n ( * a r g s , * * k w a r g s ) f i n a l l y : l o c k . r e l e a s e ( ) e l i f s e l f . r e t r y _ o n _ l o c k : r a i s e s e l f . r e r t y ( c o u n t d o w n = 5 ) d e f l o c k e d _ r u n ( s e l f ) : r a i s e N o t I m p l e m e n t e d E r r o r
p o r t D a t a T a s k ( L o c k e d T a s k ) : n a m e = ' i m p o r t - d a t a ' r e t r y _ o n _ l o c k = F a l s e d e f l o c k e d _ r u n ( s e l f , u r l ) : r e s p o n s e = r e q u e s t s . g e t ( u r l ) . . .
o g g i n g f r o m c e l e r y . s i g n a l s i m p o r t s e t u p _ l o g g i n g @ s e t u p _ l o g g i n g . c o n n e c t d e f s e t u p _ w o r k e r _ l o g g i n g ( l o g l e v e l , l o g f i l e , f o r m a t , c o l o r i z e ) : r o o t = l o g g i n g . g e t L o g g e r ( ) r o o t . s e t L e v e l ( l o g l e v e l ) r o o t . a d d H a n d l e r ( l o g g i n g . h a n d l e r s . S y s L o g H a n d l e r ( ) )
s t : ~ $ c e l e r y i n s p e c t p i n g - > d e f a u l t @ h o s t 0 1 : O K p o n g - > m a n a g e m e n t @ h o s t 0 1 : O K p o n g - > s w a r m @ h o s t 0 2 : O K p o n g - > s w a r m _ c h e c k @ h o s t 0 2 : O K p o n g - > s w a r m _ p u s h @ h o s t 0 3 : O K p o n g - > s w a r m _ s t o r e @ h o s t 0 3 : O K p o n g - > s w a r m _ w a l k @ h o s t 0 4 : O K p o n g