예제 #1
0
    def handle(self, *args, **options):

        pid = options.get('pid')
        if pid:
            with open(os.path.expanduser(pid), "w") as fp:
                fp.write(str(os.getpid()))

        if os.environ.get('RUN_MAIN') == 'true':
            try:
                self.create_worker(*args, **options)
            except KeyboardInterrupt:
                pass
        elif os.environ.get('RUN_RELOADER') == 'true':
            try:
                reloader_thread()
            except KeyboardInterrupt:
                pass
        else:
            num_workers = options['num_workers']
            if not num_workers:
                num_workers = int(os.environ.get('RQ_CONCURRENCY', 1))

            workers = []
            # need the number of workers - 1 because our main process will create one
            for _ in range(num_workers - 1):
                workers.append(self.create_worker_process())

            if options['autoreload']:
                workers.append(self.create_worker_process())
                self.create_reloader(workers)
            else:
                self.create_worker(*args, **options)
예제 #2
0
    def handle(self, *args, **options):

        pid = options.get('pid')
        if pid:
            with open(os.path.expanduser(pid), "w") as fp:
                fp.write(str(os.getpid()))

        if os.environ.get('RUN_MAIN') == 'true':
            try:
                self.create_worker(*args, **options)
            except KeyboardInterrupt:
                pass
        elif os.environ.get('RUN_RELOADER') == 'true':
            try:
                reloader_thread()
            except KeyboardInterrupt:
                pass
        else:
            num_workers = options['num_workers']
            if not num_workers:
                num_workers = int(os.environ.get('RQ_CONCURRENCY', 1))

            workers = []
            # need the number of workers - 1 because our main process will create one
            for _ in range(num_workers - 1):
                workers.append(self.create_worker_process())

            if options['autoreload']:
                workers.append(self.create_worker_process())
                self.create_reloader(workers)
            else:
                self.create_worker(*args, **options)
예제 #3
0
    def run_tests(self):
        auto_reload = False
        if '-a' in sys.argv or '--autoreload' in sys.argv:
            auto_reload = True

        if auto_reload:
            from django.utils.autoreload import restart_with_reloader, reloader_thread
            if os.environ.get("RUN_MAIN") == "true":
                try:
                    TestCommand.run_tests(self)
                except LabelException:
                    sys.exit(1)
                except:
                    pass
                try:
                    reloader_thread()
                except KeyboardInterrupt:
                    pass
            else:
                try:
                    sys.exit(restart_with_reloader())
                except KeyboardInterrupt:
                    pass
        else:
            return TestCommand.run_tests(self)
 def autoreload(self):
     """Copied from django.core.autoload.python_reloader"""
     if os.environ.get("RUN_MAIN") == "true":
         thread.start_new_thread(self.inner_run, ()) # start http server
         try:
             #sys.stdout.write("Starting reloader_thread...\n")
             reloader_thread()   # poll source files for modifications
                                 # if modified, kill self
         except KeyboardInterrupt:
             pass
     else:
         try:
             exit_code = self.restart_with_reloader()
             if exit_code < 0:
                 os.kill(os.getpid(), -exit_code)
             else:
                 sys.exit(exit_code)
         except KeyboardInterrupt:
             pass
 def autoreload(self):
     """Copied from django.core.autoload.python_reloader"""
     if os.environ.get("RUN_MAIN") == "true":
         thread.start_new_thread(self.inner_run, ()) # start http server
         try:
             #sys.stdout.write("Starting reloader_thread...\n")
             reloader_thread()   # poll source files for modifications
                                 # if modified, kill self
         except KeyboardInterrupt:
             pass
     else:
         try:
             exit_code = self.restart_with_reloader()
             if exit_code < 0:
                 os.kill(os.getpid(), -exit_code)
             else:
                 sys.exit(exit_code)
         except KeyboardInterrupt:
             pass