57 lines
2.1 KiB
Python
Executable File
57 lines
2.1 KiB
Python
Executable File
from celery import Celery
|
|
import environ
|
|
env = environ.Env(
|
|
DEBUG=(bool, False)
|
|
)
|
|
|
|
class CeleryConnector:
|
|
task_routes = {
|
|
'process_fi_invoice_result': {'queue': 'invoice_fi_rs'},
|
|
'process_sap_invoice_result': {'queue': 'invoice_sap_rs'},
|
|
'process_manulife_invoice_result': {'queue': 'invoice_manulife_rs'},
|
|
'process_sbt_invoice_result': {'queue': 'invoice_sbt_rs'},
|
|
# mock task
|
|
'process_fi_invoice': {'queue': "invoice_fi"},
|
|
'process_sap_invoice': {'queue': "invoice_sap"},
|
|
'process_manulife_invoice': {'queue': "invoice_manulife"},
|
|
'process_sbt_invoice': {'queue': "invoice_sbt"},
|
|
}
|
|
app = Celery(
|
|
"postman",
|
|
broker= env.str("CELERY_BROKER", "amqp://test:test@rabbitmq:5672"),
|
|
broker_transport_options={'confirm_publish': False},
|
|
)
|
|
|
|
# mock task for FI
|
|
def process_fi_invoice_result(self, args):
|
|
return self.send_task("process_fi_invoice_result", args)
|
|
|
|
def process_fi_invoice(self, args):
|
|
return self.send_task("process_fi_invoice", args)
|
|
|
|
# mock task for SAP
|
|
def process_sap_invoice_result(self, args):
|
|
return self.send_task("process_sap_invoice_result", args)
|
|
|
|
def process_sap_invoice(self, args):
|
|
return self.send_task("process_sap_invoice", args)
|
|
|
|
# mock task for manulife
|
|
def process_manulife_invoice_result(self, args):
|
|
return self.send_task("process_manulife_invoice_result", args)
|
|
|
|
def process_manulife_invoice(self, args):
|
|
return self.send_task("process_manulife_invoice", args)
|
|
|
|
# mock task for manulife
|
|
def process_sbt_invoice_result(self, args):
|
|
return self.send_task("process_sbt_invoice_result", args)
|
|
|
|
def process_sbt_invoice(self, args):
|
|
return self.send_task("process_sbt_invoice", args)
|
|
|
|
def send_task(self, name=None, args=None):
|
|
if name not in self.task_routes or "queue" not in self.task_routes[name]:
|
|
return self.app.send_task(name, args)
|
|
|
|
return self.app.send_task(name, args, queue=self.task_routes[name]["queue"]) |