|
@@ -1,7 +1,9 @@
|
|
|
-from celery.utils import timer2
|
|
|
+import atexit
|
|
|
|
|
|
+from celery import platforms
|
|
|
from celery.app import app_or_default
|
|
|
from celery.datastructures import TokenBucket
|
|
|
+from celery.utils import timer2
|
|
|
from celery.utils import instantiate, LOG_LEVELS
|
|
|
from celery.utils.dispatch import Signal
|
|
|
from celery.utils.timeutils import rate
|
|
@@ -69,8 +71,13 @@ class Polaroid(object):
|
|
|
|
|
|
|
|
|
def evcam(camera, freq=1.0, maxrate=None, loglevel=0,
|
|
|
- logfile=None, timer=None, app=None):
|
|
|
+ logfile=None, pidfile=None, timer=None, app=None):
|
|
|
app = app_or_default(app)
|
|
|
+
|
|
|
+ if pidfile:
|
|
|
+ pidlock = platforms.create_pidlock(pidfile).acquire()
|
|
|
+ atexit.register(pidlock.release)
|
|
|
+
|
|
|
if not isinstance(loglevel, int):
|
|
|
loglevel = LOG_LEVELS[loglevel.upper()]
|
|
|
logger = app.log.setup_logger(loglevel=loglevel,
|