Browse Source

Beat: Set default socket timeout to 30

Ask Solem 14 years ago
parent
commit
b6834e7853
1 changed files with 8 additions and 1 deletions
  1. 8 1
      celery/apps/beat.py

+ 8 - 1
celery/apps/beat.py

@@ -1,4 +1,5 @@
 import logging
+import socket
 import sys
 import traceback
 
@@ -20,7 +21,8 @@ class Beat(object):
     Service = beat.Service
 
     def __init__(self, loglevel=None, logfile=None, schedule=None,
-            max_interval=None, scheduler_cls=None, app=None, **kwargs):
+            max_interval=None, scheduler_cls=None, app=None,
+            socket_timeout=30, **kwargs):
         """Starts the celerybeat task scheduler."""
         self.app = app = app_or_default(app)
 
@@ -29,6 +31,7 @@ class Beat(object):
         self.schedule = schedule or app.conf.CELERYBEAT_SCHEDULE_FILENAME
         self.scheduler_cls = scheduler_cls
         self.max_interval = max_interval
+        self.socket_timeout = socket_timeout
 
         if not isinstance(self.loglevel, int):
             self.loglevel = LOG_LEVELS[self.loglevel.upper()]
@@ -39,6 +42,10 @@ class Beat(object):
         self.init_loader()
         print(self.startup_info())
         self.set_process_title()
+        if self.socket_timeout:
+            logger.debug("Setting default socket timeout to %r" % (
+                self.socket_timeout))
+            socket.setdefaulttimeout(self.socket_timeout)
         print("celerybeat has started.")
         self.start_scheduler(logger)