m2m模型翻译
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.0 KiB

6 months ago
  1. #coding:utf8
  2. from collections import deque
  3. from kafka import KafkaProducer
  4. import json
  5. from config_loader import load_config
  6. # 加载配置
  7. config = load_config()
  8. # 创建全局双向队列实例
  9. task_queue = deque()
  10. def add_task(task):
  11. """将任务添加到队列尾部
  12. """
  13. task_queue.append(task)
  14. def add_task_left(task):
  15. """将任务添加到队列头部
  16. """
  17. task_queue.appendleft(task)
  18. def get_task():
  19. """从队列头部获取任务
  20. """
  21. return task_queue.popleft()
  22. def get_task_right():
  23. """从队列尾部获取任务
  24. """
  25. return task_queue.pop()
  26. def get_size():
  27. """获取队列长度
  28. :return:
  29. """
  30. return len(task_queue)
  31. def task_done(result):
  32. """标记任务完成并将结果发送到 Kafka"""
  33. # 初始化 Kafka 生产者
  34. producer = KafkaProducer(
  35. bootstrap_servers=config['kafka']['bootstrap_servers'],
  36. value_serializer=lambda v: json.dumps(v).encode('utf-8')
  37. )
  38. producer.send(config['kafka']['topic'], result)
  39. producer.flush()
  40. producer.close()