如何避免芹菜截断“task_args”文本在“django_celery_results_taskresult” [tasks.py][CELERY WORKER COMMAND PROMPT FOR ONE ITERATION][$ celery -A hawkeye report][celery.py]

问题描述

在我的 Django 项目中,我使用 Celery 异步运行我的任务。

我面临的问题是“task_args”中的“django_celery_results_taskresult”列被截断(即文本后跟省略号)。

例如,我期望“process_4_items”中的整个“task_args”值。然而,事实并非如此。我可以在执行中的 Celery 工作线程的命令提示符中看到相同的截断文本(请参见下面的“[CELERY WORKER COMMAND PROMPT FOR ONE IteraTION]”)。

我真的不确定我需要做什么才能在“process_4_items”中获得整个“task_args”值。

我在下面详细说明了我认为我需要复制此项目的所有内容

最重要的是,当我调试项目并逐行执行时,“process_4_items”值的全部内容都出现在“task_args”中。

[celeryconfig.py]

broker_url = 'amqp://localhost:5672//'

imports = ('operation_hawkeye.tasks',)

result_backend = 'django-db'

accept_content = ['json']

task_always_eager = False

[views.py]

from celery import group

process_4_items = [

{

"service_id": "7f7962b082cb8da55e01f4f013d8fefbc97948ec03400c93423b050d",

"service_id_unique": "c30ed891987f4d8d3debcaef7edb0f582e6b634f1ebed00fb88f0ec7",

"service_type": "buzz_collect_compare",

"service_file_pf_folder": "",

"service_file_nanonsportsproductivity_folder": "",

"service_file_tba_report": "",

"service_file_buzz_collect_compare": "services/buzzcollect_xml_compare/2021/06/01/file_2_name_Update_COOKINGHD_May_2021_Listin_yWoWXo1.xml",

"service_file_type": "XML 1.0 document,ASCII text",

"service_file_name": "file_2_name_Update_COOKINGHD_May 2021 Listings(4-26-21 thru 5-30-21).xml",

"service_file_size": 396557,

"service_status": "In Queue for Upload",

"service_status_remarks": {

"source_information": {

"source_id": "5191",

"source_name": "10NEWS2",

"file_1_name": "Original_COOKINGHD_May 2021 Listings(4-26-21 thru 5-30-21).xml",

"file_2_name": "Update_COOKINGHD_May 2021 Listings(4-26-21 thru 5-30-21).xml"

}

},

"service_creation_date": "2021-06-01T18:18:40.968Z",

"service_owner": "p.premlal@spi-global.com"

},

{

"service_id": "7f7962b082cb8da55e01f4f013d8fefbc97948ec03400c93423b050d",

"service_id_unique": "2edaf2535945992d13b9ee85e908b21cbd520a02642bd7faf7f229bc",

"service_file_buzz_collect_compare": "services/buzzcollect_xml_compare/2021/06/01/file_1_name_Original_COOKINGHD_May_2021_List_P2PlYY7.xml",

"service_file_name": "file_1_name_Original_COOKINGHD_May 2021 Listings(4-26-21 thru 5-30-21).xml",

"service_file_size": 396409,

"service_creation_date": "2021-06-01T18:18:40.935Z",

"service_owner": "p.premlal@spi-global.com"

}

]

jobs_4 = group(tasks.buzz_collect_compare_main.s(process_4_items))

result_4 = jobs_4.apply_async()

[tasks.py]

@app.task(bind=True)

def buzz_collect_compare_main(self,items):

process_items = items

...

[CELERY WORKER COMMAND PROMPT FOR ONE IteraTION]

[2021-06-01 09:37:29,972: DEBUG/ForkPoolWorker-32] (0.010)

UPDATE

"django_celery_results_taskresult"

SET

"task_id" = 'daca83c1-3297-4e64-8a5e-f4b61aef84e2',

"task_name" = 'operation_hawkeye.tasks.buzz_collect_compare_main',

"task_args" = '([{''service_id'': ''dc30fc45948975044cb00c39a4d5a0db8e28bc34f0b4d52fd4dcddef'',''service_id_unique'': ''2004e35ae5dcc2586ae5fca16ab8a5b2708ffeca233d3bb234feb347'',''service_type'': ''buzz_collect_compare'',''service_file_pf_folder'': '''',''service_file_nanonsportsproductivity_folder'': '''',''service_file_tba_report'': '''',''service_file_buzz_collect_compare'': ''services/buzzcollect_xml_compare/2021/06/01/file_2_name_Update_COOKINGHD_May_2021_Listin_726wZgI.xml'',''service_file_type'': ''XML 1.0 document,ASCII text'',''service_file_name'': ''file_2_name_Update_COOKINGHD_May 2021 Listings(4-26-21 thru 5-30-21).xml'',''service_file_size'': 396557,''service_status'': ''In Queue for Upload'',''service_status_remarks'': ''{"source_information": "{\"source_id\": \"27227\",\"source_name\": \"COOKINGHD\",\"file_1_name\": \"Original_COOKINGHD_May 2021 Listings(4-26-21 thru 5-30-21).xml\",\"file_2_name\": \"Update_COOKINGHD_May 2021 Listings(4-26-21 thru 5-30-21).xml\"}"}'',''service_creation_date'': ''2021-06-01T09:36:56.825Z'',''service_owner'': ''p...'',...],)',

"task_kwargs" = '{}',

"status" = 'PROGRESS',

"worker" = 'celery@AMD-RYZEN-UBUNTU',

"content_type" = 'application/json',

"content_encoding" = 'utf-8',

"result" = '{"pending": false,"current": 1254,"total": 1254,"percent": 100.0,"description": "Building row 1254 of 1254"}',

"date_created" = '2021-06-01T09:36:58.465884+00:00'::timestamptz,

"date_done" = '2021-06-01T09:37:29.962267+00:00'::timestamptz,

"traceback" = NULL,

"Meta" = '{"children": []}'

WHERE

"django_celery_results_taskresult"."id" = 808;

args=('daca83c1-3297-4e64-8a5e-f4b61aef84e2','operation_hawkeye.tasks.buzz_collect_compare_main','([{\'service_id\': \'dc30fc45948975044cb00c39a4d5a0db8e28bc34f0b4d52fd4dcddef\',\'service_id_unique\': >\'2004e35ae5dcc2586ae5fca16ab8a5b2708ffeca233d3bb234feb347\',\'service_type\': \'buzz_collect_compare\',\'service_file_pf_folder\': \'\',\'service_file_nanonsportsproductivity_folder\': \'\',\'service_file_tba_report\': \'\',\'service_file_buzz_collect_compare\': \'services/buzzcollect_xml_compare/2021/06/01/file_2_name_Update_COOKINGHD_May_2021_Listin_726wZgI.xml\',\'service_file_type\': \'XML 1.0 document,ASCII text\',\'service_file_name\': \'file_2_name_Update_COOKINGHD_May 2021 Listings(4-26-21 thru 5-30-21).xml\',\'service_file_size\': 396557,\'service_status\': \'In Queue for Upload\',\'service_status_remarks\': \'{"source_information": "{\\"source_id\\": \\"27227\\",\\"source_name\\": \\"COOKINGHD\\",\\"file_1_name\\": \\"Original_COOKINGHD_May 2021 Listings(4-26-21 thru 5-30-21).xml\\",\\"file_2_name\\": \\"Update_COOKINGHD_May 2021 Listings(4-26-21 thru 5-30-21).xml\\"}"}\',\'service_creation_date\': \'2021-06-01T09:36:56.825Z\',\'service_owner\': \'p...\','{}','PROGRESS','celery@AMD-RYZEN-UBUNTU','application/json','utf-8','{"pending": false,datetime.datetime(2021,6,1,9,36,58,465884,tzinfo=<UTC>),37,29,962267,'{"children": []}',808)

[$ celery -A hawkeye report]

software -> celery:4.4.7 (cliffs) kombu:4.6.11 py:3.8.6

billiard:3.6.3.0 py-amqp:2.6.1

platform -> system:Linux arch:64bit,ELF

kernel version:5.8.0-53-generic imp:cpython

loader -> celery.loaders.app.AppLoader

settings -> transport:amqp results:django-db

accept_content: ['json']

broker_url: 'amqp://guest:********@localhost:5672//'

imports: ('operation_hawkeye.tasks',)

result_backend: 'django-db'

task_always_eager: False

[更新]

通过在 argsrepr_maxsize 中定义 celery.py解决了这个问题。虽然我之前知道这个解决方案,但我没有意识到 argsrepr_maxsizecelery.ampq 内。

[celery.py]

import os

from celery import Celery

os.environ.setdefault('DJANGO_SETTINGS_MODULE','hawkeye.settings')

os.environ.setdefault('FORKED_BY_MULTIPROCESSING','1')

app = Celery('hawkeye')

default_config = 'hawkeye.celeryconfig'

app.config_from_object(default_config)

app.amqp.argsrepr_maxsize = 10485760

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...