Ver Fonte

The celeryd command now works on windows, and with fork+exec

Ask Solem há 13 anos atrás
pai
commit
4ea9e5d473
2 ficheiros alterados com 6 adições e 21 exclusões
  1. 5 17
      celery/bin/celeryd.py
  2. 1 4
      setup.py

+ 5 - 17
celery/bin/celeryd.py

@@ -191,27 +191,15 @@ class WorkerCommand(Command):
 
 
 def main():
+    # Fix for setuptools generated scripts, so that it will
+    # work with multiprocessing fork emulation.
+    # (see multiprocessing.forking.get_preparation_data())
+    if __name__ != "__main__":
+        sys.modules["__main__"] = sys.modules[__name__]
     freeze_support()
     worker = WorkerCommand()
     worker.execute_from_commandline()
 
 
-def windows_main():
-    sys.stderr.write("""
-
-The celeryd command does not work on Windows.
-
-Instead, please use:
-
-    ..> python -m celery.bin.celeryd
-
-You can also supply arguments:
-
-    ..> python -m celery.bin.celeryd --concurrency=10 --loglevel=DEBUG
-
-
-    """.strip())
-
-
 if __name__ == "__main__":          # pragma: no cover
     main()

+ 1 - 4
setup.py

@@ -152,16 +152,13 @@ else:
 # -*- Entry Points -*- #
 
 console_scripts = entrypoints["console_scripts"] = [
+        'celeryd = celery.bin.celeryd:main',
         'celerybeat = celery.bin.celerybeat:main',
         'camqadm = celery.bin.camqadm:main',
         'celeryev = celery.bin.celeryev:main',
         'celeryctl = celery.bin.celeryctl:main',
         'celeryd-multi = celery.bin.celeryd_multi:main',
 ]
-if platform.system() == "Windows":
-    console_scripts.append('celeryd = celery.bin.celeryd:windows_main')
-else:
-    console_scripts.append('celeryd = celery.bin.celeryd:main')
 
 # bundles: Only relevant for Celery developers.
 entrypoints["bundle.bundles"] = ["celery = celery.contrib.bundles:bundles"]