對芹菜完全陌生並想知道是否可以在芹菜任務內的表上運行查詢?是否有可能在芹菜的tasks.py中執行查詢
芹菜是工作,我可以排隊的工作,但是,我想這和它給出了一個錯誤:
import celery
from celery import shared_task
from django.shortcuts import get_object_or_404
from frontendapp.models import xlinkdatabase
@shared_task
def lookup(lookup_id):
look_up_result = get_object_or_404(xlinkdatabase,MEMBER_ID=lookup_id)
return look_up_result
錯誤:
kombu.exceptions.EncodeError: Object of type 'xlinkdatabase' is not JSON serializable
我究竟做錯了什麼?
編輯
是我試圖去通過ID的(在一個CSV文件輸入)的名單,我想電子郵件地址添加到該ID,並寫在一個新的CSV事情文件。 ID /電子郵件關係在我的psql xlink數據庫模型中。
查找的整個想法不是返回一個對象。我想有一個任務在我的psql數據庫中進行查找(與模型相關),並從該特定搜索中選擇一個值。
models.py:
class xlinkdatabase(models.Model):
uniqueid = models.AutoField(primary_key=True)
MEMBER_ID = models.DecimalField(verbose_name="Member id",max_digits=19, decimal_places=0,default=Decimal('0'))
MEMBER_PRIMARY_EMAIL = models.CharField(verbose_name="Email address", max_length = 150, default="not set")
我想返回基於MEMBER_ID
我把任務的MEMBER_PRIMARY_EMAIL
地址。
你不能從任務返回一個對象。你必須返回可序列化的東西。就像你可以將你的對象轉換成json –
我編輯我的問題,所以它更清晰。我不想返回一個對象persé。 – radzia2
那你究竟回來了什麼?它是成員主要電子郵件地址的列表嗎?如果是這樣,那麼下面的答案將工作 –