柏木 升 2020-09-09 15:32 采纳率: 0%
浏览 118

python rq模块中worker执行时,Job中的日志记录问题



生产者端

async def parse_list(self, key, page):
    start = time.time()
    url, headers = await self.get_list_url_headers(key, page)
    my_job = create_job(func_salve_run, key, page, url, headers)
    logger.debug(f'queued job: "{my_job.get_id()}"')
def create_job(_func, *args):
    _job = queue.enqueue(_func, *args)
    # print(f'job id:{_job.get_id()}')
    return _job



消费者端 job.py

import loguru
basepath = os.path.abspath(os.path.dirname(__file__))
logger.add(f'{basepath}/logs/Crawl.log', format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message}",level="DEBUG", retention='5 days')

def func_salve_run(key, page, url, headers):
    resp = fetch(url, headers=headers)
    logger.debug(f' {key} / {page} crawl success')
    itemsArray = json.loads(resp)['data']['itemsArray']
    items = crawl_pipeline(itemsArray, key, page, coll)
    logger.debug(f'itemsArray')



求解答后端运行时如何保证多个worker能写进同一日志文件而不产生锁冲突?
或者说怎么让单个worker得到它自己所运行Job中的日志记录然后写进独自一个文件?

  • 写回答

1条回答 默认 最新

  • zqbnqsdsmd 2020-09-10 12:08
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 C# 用partial定义部分类无法快速预览代码
  • ¥15 fastreport 代码无法设置最后一页横线不显示
  • ¥15 stm32u535芯片usb hid custom类接收数据有问题
  • ¥20 quartus功能仿真
  • ¥15 传染病最优控制问题,控制为什么没起作用
  • ¥15 ue5.3 pico打包失败 求帮助
  • ¥15 请教,这是用chatgpt写的CAD LISPD脚本,需求是画一个由双直线组成的矩形
  • ¥50 微信小程序 成功包奶茶啊
  • ¥15 计算机博弈的六子棋代码
  • ¥15 在Fetch API中传送的参数为何不起作用?