Esempio n. 1
0
    def setUpClass(self):
        shutil.rmtree('./test/data/', ignore_errors=True)
        os.makedirs('./test/data/')

        def get_taskdb():
            return taskdb.TaskDB(self.taskdb_path)
        self.taskdb = get_taskdb()

        def get_projectdb():
            return projectdb.ProjectDB(self.projectdb_path)
        self.projectdb = get_projectdb()

        self.newtask_queue = Queue(10)
        self.status_queue = Queue(10)
        self.scheduler2fetcher = Queue(10)
        self.rpc = xmlrpclib.ServerProxy('http://localhost:%d' % self.scheduler_xmlrpc_port)

        def run_scheduler():
            scheduler = Scheduler(taskdb=get_taskdb(), projectdb=get_projectdb(),
                    newtask_queue=self.newtask_queue, status_queue=self.status_queue,
                    out_queue=self.scheduler2fetcher, data_path="./test/data/")
            scheduler.UPDATE_PROJECT_INTERVAL = 0.1
            scheduler.LOOP_INTERVAL = 0.1
            scheduler.INQUEUE_LIMIT = 10
            scheduler._last_tick = time.time() # not dispatch cronjob
            run_in_thread(scheduler.xmlrpc_run, port=self.scheduler_xmlrpc_port)
            scheduler.run()

        self.process = run_in_subprocess(run_scheduler)
        time.sleep(1)
Esempio n. 2
0
def all_in_one():
    import xmlrpclib
    g.scheduler_rpc = xmlrpclib.ServerProxy(
            'http://localhost:%d' % g.scheduler_xmlrpc_port)
    g.all_in_one = True

    threads = []
    threads.append(run_in_subprocess(run_result_worker, g=g))
    threads.append(run_in_subprocess(run_processor, g=g))
    threads.append(run_in_subprocess(run_fetcher, g=g))
    threads.append(run_in_subprocess(run_scheduler, g=g))
    threads.append(run_in_subprocess(run_webui, g=g))

    while True:
        try:
            time.sleep(10)
        except KeyboardInterrupt:
            break

    for each in threads:
        each.join()
Esempio n. 3
0
    def setUpClass(self):
        shutil.rmtree('./test/data/', ignore_errors=True)
        os.makedirs('./test/data/')

        def get_taskdb():
            return taskdb.TaskDB(self.taskdb_path)

        self.taskdb = get_taskdb()

        def get_projectdb():
            return projectdb.ProjectDB(self.projectdb_path)

        self.projectdb = get_projectdb()

        self.newtask_queue = Queue(10)
        self.status_queue = Queue(10)
        self.scheduler2fetcher = Queue(10)
        self.rpc = xmlrpclib.ServerProxy('http://localhost:%d' %
                                         self.scheduler_xmlrpc_port)

        def run_scheduler():
            scheduler = Scheduler(taskdb=get_taskdb(),
                                  projectdb=get_projectdb(),
                                  newtask_queue=self.newtask_queue,
                                  status_queue=self.status_queue,
                                  out_queue=self.scheduler2fetcher,
                                  data_path="./test/data/")
            scheduler.UPDATE_PROJECT_INTERVAL = 0.1
            scheduler.LOOP_INTERVAL = 0.1
            scheduler._last_tick = time.time()  # not dispatch cronjob
            run_in_thread(scheduler.xmlrpc_run,
                          port=self.scheduler_xmlrpc_port)
            scheduler.run()

        self.process = run_in_subprocess(run_scheduler)
        time.sleep(1)
Esempio n. 4
0
    import cPickle as pickle
    scheduler_rpc = xmlrpclib.ServerProxy('http://localhost:%d' % scheduler_xmlrpc_port)
    fetch_rpc = xmlrpclib.ServerProxy('http://localhost:%d' % fetcher_xmlrpc_port)

    from webui.app import app
    app.config['fetch'] = lambda task: pickle.loads(fetch_rpc.fetch(task).data)
    app.config['taskdb'] = get_taskdb()
    app.config['projectdb'] = get_projectdb()
    app.config['scheduler_rpc'] = scheduler_rpc
    #app.config['cdn'] = '//cdnjs.cloudflare.com/ajax/libs/'
    app.run()

if __name__ == '__main__':
    if len(sys.argv) < 2:
        threads = []
        threads.append(run_in_subprocess(run_fetcher))
        threads.append(run_in_subprocess(run_processor))
        threads.append(run_in_subprocess(run_scheduler))
        threads.append(run_in_subprocess(run_webui))

        while True:
            try:
                time.sleep(10)
            except KeyboardInterrupt:
                break

        for each in threads:
            each.join()
    else:
        cmd = "run_"+sys.argv[1]
        locals()[cmd]()
Esempio n. 5
0
    fetch_rpc = xmlrpclib.ServerProxy('http://localhost:%d' %
                                      fetcher_xmlrpc_port)

    from webui.app import app
    app.config['fetch'] = lambda task: pickle.loads(fetch_rpc.fetch(task).data)
    app.config['taskdb'] = get_taskdb()
    app.config['projectdb'] = get_projectdb()
    app.config['scheduler_rpc'] = scheduler_rpc
    #app.config['cdn'] = '//cdnjs.cloudflare.com/ajax/libs/'
    app.run()


if __name__ == '__main__':
    if len(sys.argv) < 2:
        threads = []
        threads.append(run_in_subprocess(run_fetcher))
        threads.append(run_in_subprocess(run_processor))
        threads.append(run_in_subprocess(run_scheduler))
        threads.append(run_in_subprocess(run_webui))

        while True:
            try:
                time.sleep(10)
            except KeyboardInterrupt:
                break

        for each in threads:
            each.join()
    else:
        cmd = "run_" + sys.argv[1]
        locals()[cmd]()