# # Copyright 2014 Budapest University of Technology and Economics (BME IK) # # # # This file is part of CIRCLE Cloud. # # # # CIRCLE is free software: you can redistribute it and/or modify it under # # the terms of the GNU General Public License as published by the Free # # Software Foundation, either version 3 of the License, or (at your option) # # any later version. # # # # CIRCLE is distributed in the hope that it will be useful, but WITHOUT ANY # # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # # details. # # # # You should have received a copy of the GNU General Public License along # # with CIRCLE. If not, see <http://www.gnu.org/licenses/>. # # from celery import Celery # from celery.signals import worker_ready # from datetime import timedelta # from kombu import Queue, Exchange # from os import getenv # # HOSTNAME = "localhost" # QUEUE_NAME = HOSTNAME + '.man' # # # celery = Celery('manager', # broker=getenv("AMQP_URI"), # include=['vm.tasks.local_tasks', # 'vm.tasks.local_periodic_tasks', # 'vm.tasks.local_agent_tasks', # 'storage.tasks.local_tasks', # 'storage.tasks.periodic_tasks', # 'firewall.tasks.local_tasks', # 'dashboard.tasks.local_periodic_tasks', # ]) # # celery.conf.update( # CELERY_RESULT_BACKEND='amqp', # CELERY_TASK_RESULT_EXPIRES=300, # CELERY_QUEUES=( # Queue(HOSTNAME + '.man', Exchange('manager', type='direct'), # routing_key="manager"), # ), # CELERYBEAT_SCHEDULE={ # 'storage.periodic_tasks': { # 'task': 'storage.tasks.periodic_tasks.garbage_collector', # 'schedule': timedelta(hours=1), # 'options': {'queue': 'localhost.man'} # }, # 'dashboard.send_email_notifications': { # 'task': 'dashboard.tasks.local_periodic_tasks.' # 'send_email_notifications', # 'schedule': timedelta(hours=24), # 'options': {'queue': 'localhost.man'} # }, # } # # ) # # # @worker_ready.connect() # def cleanup_tasks(conf=None, **kwargs): # '''Discard all task and clean up activity.''' # from vm.models.activity import cleanup # cleanup(queue_name=QUEUE_NAME)