A Jobs Queue for processing tasks asynchronously

Public Channel / Odoo Experience 2015

Share on Social Networks

Share Link

Use permanent link to share in social media

Share with a friend

Please login to send this presentation by email!

Embed in your website

Select page to start with

3. C o m p u t e r s a r e s l o w ! 3 / 3 2

5. T h e p r o b l e m 4 / 3 2

7. L o a d i n g . . . 6 / 3 2

8. S t i l l l o a d i n g . . . 7 / 3 2

9. S t i l l l o a d i n g . . . P l e a s e b e p a t i e n t . 8 / 3 2

10. D o n ' t l e a v e y e t , i t ' s s t i l l l o a d i n g 9 / 3 2

13. C o m e o n . . . 1 2 / 3 2

14. W e c a n t r y t o s a v e a f e w s e c o n d s 1 3 / 3 2

23. C h a n n e l s 1 8 / 3 2

4. C o m p u t e r s a r e s l o w ! H u m a n s w a n t t h e m t o b e f a s t ! 3 / 3 2

11. Y o u m a y n o t b e l i e v e i t , b u t t h e a p p l i c a t i o n i s a c t u a l l y l o a d i n g . . . 1 0 / 3 2

12. T a k e a m i n u t e t o g e t a c o f f e e , b e c a u s e i t ' s l o a d i n g . . . 1 1 / 3 2

15. W e c a n t r y t o s a v e a f e w s e c o n d s B u t w e h a v e m o r e r a d i c a l s o l u t i o n s 1 3 / 3 2

25. P r o p e r t i e s 2 0 / 3 2

30. B e s t P r a c t i c e s 2 4 / 3 2

17. C o n n e c t o r o d o o - c o n n e c t o r . c o m 1 5 / 3 2

34. U s e f u l P a t t e r n s 2 8 / 3 2

38. T h a n k s ! 3 2 / 3 2

18. Q u e u e i t ! D e p e n d e n c y o n c o n n e c t o r 1 6 / 3 2

37. E x t r a c t h i g h l y c o n c u r r e n t t a s k s A n d p u t t h e m i n a o n e - b y - o n e c h a n n e l . 3 1 / 3 2

39. T h a n k s ! O C A S p o n s o r s 3 2 / 3 2

1. A J o b s Q u e u e f o r p r o c e s s i n g t a s k s a s y n c h r o n o u s l y G u e w e n B a c o n n i e r & L e o n a r d o P i s t o n e C a m p t o c a m p 1 / 3 2

6. U s e r O d o o S e r v e r W a i t i n g H e a v y t a s k ! 5 / 3 2

16. U s e r O d o o S e r v e r H e a v y t a s k ! C o n n e c t o r R u n n e r 1 4 / 3 2

21. D e q u e u e i t ! S t a r t t h e s e r v e r w i t h : O D O O _ C O N N E C T O R _ C H A N N E L S = r o o t : 2 . / o p e n e r p - s e r v e r - - l o a d = w e b , c o n n e c t o r - - w o r k e r s = 4 1 7 / 3 2

28. R e t r i e s i m p o r t _ o r d e r . d e l a y ( s e s s i o n , 1 , m a x _ r e t r i e s = 3 ) 2 3 / 3 2

2. G u e w e n B a c o n n i e r D e v e l o p e r @ C a m p t o c a m p O C A c o m m i t t e r , O C A D e l e g a t e C o n n e c t o r a u t h o r @ g u e w e n b @ g u e w e n L e o n a r d o P i s t o n e D e v e l o p e r @ C a m p t o c a m p O C A c o m m i t t e r , O C A D e l e g a t e @ l e p i s t o n e A b o u t u s 2 / 3 2

24. H T T P W o r k e r s c s v m a g e n t o r o o t R u n n i n g j o b s C a p a c i t y C h a n n e l s 1 9 / 3 2

22. D e q u e u e i t ! S t a r t t h e s e r v e r w i t h : O D O O _ C O N N E C T O R _ C H A N N E L S = r o o t : 2 . / o p e n e r p - s e r v e r - - l o a d = w e b , c o n n e c t o r - - w o r k e r s = 4 O D O O _ C O N N E C T O R _ C H A N N E L S = r o o t : 3 , r o o t . c s v : 1 , r o o t . m a g e n t o : 3 \ . / o p e n e r p - s e r v e r - - l o a d = w e b , c o n n e c t o r - - w o r k e r s = 4 1 7 / 3 2

19. Q u e u e i t ! D e p e n d e n c y o n c o n n e c t o r D e c l a r e a j o b : f r o m o p e n e r p . a d d o n s . c o n n e c t o r . q u e u e . j o b i m p o r t j o b @ j o b d e f a _ h e a v y _ t a s k ( s e s s i o n , m o d e l _ n a m e , r e c o r d _ i d ) : # d o a n h e a v y t a s k o n r e c o r d _ i d o f m o d e l _ n a m e 1 6 / 3 2

35. F a n o u t J o b A j o b g e n e r a t i n g o t h e r j o b s . @ j o b d e f i m p o r t _ f i l e ( s e s s i o n , f i l e p a t h ) : w i t h o p e n ( f i l e p a t h ) a s f : f o r l i n e i n f : i m p o r t _ l i n e . d e l a y ( s e s s i o n , l i n e ) 2 9 / 3 2

26. P r i o r i t y 1 0 5 0 9 9 9 P r i o r i t y i m p o r t _ o r d e r . d e l a y ( s e s s i o n , 1 ) # d e f a u l t i s 1 0 i m p o r t _ o r d e r . d e l a y ( s e s s i o n , 2 , p r i o r i t y = 5 0 ) i m p o r t _ o r d e r . d e l a y ( s e s s i o n , 1 0 , p r i o r i t y = 9 9 9 ) 2 1 / 3 2

36. T r y o r d e l a y I f a n o p e r a t i o n f a i l e d , t r y i t l a t e r . @ j o b d e f d o _ o p e r a t i o n ( s e s s i o n , a r g s ) : # w o r k t r y : d o _ o p e r a t i o n ( s e s s i o n , a r g s ) e x c e p t T i m e o u t E r r o r : d o _ o p e r a t i o n . d e l a y ( s e s s i o n , a r g s , e t a = 1 0 * 6 0 ) 3 0 / 3 2

31. O u t d a t i n g D a t a i n j o b s c a n b e c o m e o u t d a t e d . N o : @ j o b d e f e x a m p l e ( s e s s i o n , r e c o r d _ i d , v a l s ) : e x p o r t ( r e c o r d _ i d , v a l s ) Y e s : @ j o b d e f e x a m p l e ( s e s s i o n , r e c o r d _ i d ) : e x p o r t ( s e s s i o n . e n v [ ' m o d e l ' ] . b r o w s e ( r e c o r d _ i d ) ) 2 5 / 3 2

20. Q u e u e i t ! D e p e n d e n c y o n c o n n e c t o r D e c l a r e a j o b : f r o m o p e n e r p . a d d o n s . c o n n e c t o r . q u e u e . j o b i m p o r t j o b @ j o b d e f a _ h e a v y _ t a s k ( s e s s i o n , m o d e l _ n a m e , r e c o r d _ i d ) : # d o a n h e a v y t a s k o n r e c o r d _ i d o f m o d e l _ n a m e D e l a y a j o b : s e s s i o n = C o n n e c t o r S e s s i o n . f r o m _ e n v ( s e l f . e n v ) a _ h e a v y _ t a s k . d e l a y ( s e s s i o n , ' r e s . p a r t n e r ' , 1 ) 1 6 / 3 2

32. O u t d a t i n g E x i s t e n c e A j o b c a n r e f e r t o a r e c o r d w h i c h h a s b e e n d e l e t e d . A l w a y s c h e c k i f i t s t i l l e x i s t s . N o : @ j o b d e f e x a m p l e ( s e s s i o n , r e c o r d _ i d ) : e x p o r t ( s e s s i o n . e n v [ ' m o d e l ' ] . b r o w s e ( r e c o r d _ i d ) ) Y e s : @ j o b d e f e x a m p l e ( s e s s i o n , r e c o r d _ i d ) : r e c o r d = s e s s i o n . e n v [ ' m o d e l ' ] . b r o w s e ( r e c o r d _ i d ) i f r e c o r d . e x i s t s ( ) : e x p o r t ( r e c o r d ) 2 6 / 3 2

27. B C N o w + 6 : 0 0 + 1 2 : 0 0 + 1 8 : 0 0 + 2 4 : 0 0 A E T A i m p o r t _ o r d e r . d e l a y ( s e s s i o n , 1 ) # A i m p o r t _ o r d e r . d e l a y ( s e s s i o n , 1 , e t a = 6 * 6 0 * 6 0 ) # B i m p o r t _ o r d e r . d e l a y ( s e s s i o n , 2 , e t a = d a t e t i m e . n o w ( ) + t i m e d e l t a ( d a y s = 1 ) ) # C 2 2 / 3 2

29. R e t r i e s i m p o r t _ o r d e r . d e l a y ( s e s s i o n , 1 , m a x _ r e t r i e s = 3 ) I n v o k e a r e t r y @ j o b d e f i m p o r t _ o r d e r ( s e s s i o n , a r g s ) : t r y : d o _ o p e r a t i o n ( ) e x c e p t ( s o c k e t . g a i e r r o r , s o c k e t . e r r o r , s o c k e t . t i m e o u t ) a s e r r : r a i s e R e t r y a b l e E r r o r ( ' A n e t w o r k e r r o r c a u s e d t h e f a i l u r e o f t h e j o b : ' ' % s ' % e r r ) 2 3 / 3 2

33. O u t d a t i n g E x i s t e n c e I d e m p o t e n c e A j o b s h o u l d , w h e n p o s s i b l e , p r o d u c e t h e s a m e r e s u l t w h e n e x e c u t e d s e v e r a l t i m e s . N o : @ j o b d e f e x a m p l e ( s e s s i o n , r e c o r d _ i d ) : e x p o r t ( s e s s i o n . e n v [ ' m o d e l ' ] . b r o w s e ( r e c o r d _ i d ) ) Y e s : @ j o b d e f e x a m p l e ( s e s s i o n , r e c o r d _ i d ) : r e c o r d = s e s s i o n . e n v [ ' m o d e l ' ] . b r o w s e ( r e c o r d _ i d ) i f r e c o r d . e x i s t s ( ) : i f n o t r e c o r d . e x p o r t e d : e x p o r t ( s e s s i o n . e n v [ ' m o d e l ' ] . b r o w s e ( r e c o r d _ i d ) ) 2 7 / 3 2

Views

  • 445 Total Views
  • 282 Website Views
  • 163 Embeded Views

Actions

  • 0 Social Shares
  • 0 Likes
  • 0 Dislikes
  • 0 Comments

Share count

  • 0 Facebook
  • 0 Twitter
  • 0 LinkedIn
  • 0 Google+

Embeds 2

  • 2 www.odoo.com
  • 4 onlinesync.odoo.com