【发布时间】:2021-10-18 13:10:25
【问题描述】:
当我想在 celery 任务中使用 tweepy 时它不会运行,只会让我失败
tasks.py
@shared_task(bind=True)
def retweet(self, consumer_key, consumer_secret, access_token, access_token_secret, clean_text, clean_count, clean_lang,
sleep_time):
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth, wait_on_rate_limit=True)
for tweet in tweepy.Cursor(api.search, q=(clean_text) + " -filter:mentions", count=clean_count,lang=clean_lang).items(int(clean_count)):
tweet.retweet()
views.py
class Retweet(FormView):
form_class = RetweetForm
template_name = 'retweet.html'
success_url = reverse_lazy('tweet:done')
def form_valid(self, form):
user = self.request.user
query = form.cleaned_data.get('query')
count = form.cleaned_data.get('count')
time = form.cleaned_data.get('sleep_time')
lang = form.cleaned_data.get('lang')
clean_text = BeautifulSoup(query, "lxml").text
clean_count = BeautifulSoup(count, 'lxml').text
sleep_time = BeautifulSoup(time, 'lxml').text
clean_lang = BeautifulSoup(lang, 'lxml').text
retweet.delay(user.consumer_key, user.consumer_secret, user.access_token, user.access_token_secret,
clean_text, clean_count, clean_lang, sleep_time)
芹菜工人错误:
邮件正文的完整内容是: B'\ X80 \ X04 \ x95B \ X01 \ X00 \ X00 \ X00 \ X00 \ X00 \ X00(\ x8c \ x19crR6CW6AB9MpsLkFsGLu4i1du \ X94 \ x8c2cMEZk1z8zlSPnKlYZKTgpBXEqeZ4EMpf4HGSIe7j1adYAAwf5w \ X94 \ x8c21157597880-a3cBcPLXFNaaeT3DYbajBdznpdGid1llqqmxEE0 \ X94 \ x8c-LBmrhuR6MWIvJ1YhLpR9DDUIxlqBwumfbsMxlmZagZtC1 \ X94 \ x8cE \ xd9 \ x87\xd9\x88\xd8\xb4\xd9\x85\xd8\xb5\xd9\x86\xd9\x88\xd8\xb9\xdb\x8c 或 \xd8\xa8\xd8\xb1\xd9\x86\xd8\xa7 \xd9\x85\xd9\x87 \xd9\x86\xd9\x88\xdb\x8c\xd8\xb3\xdb\x8c 或 \xd8\xa7\xdb\x8c\xd9\x84\xd8\xa7\xd9\x86 \ xd9\x85\xd8\xa7\xd8\xb3\xda\xa9\x94\x8c\x013\x94\x8c\x02fa\x94\x8c\x016\x94t\x94}\x94}\x94(\x8c\tcallbacks\x94N \x8c\x08errbacks\x94N\x8c\x05chain\x94N\x8c\x05chord\x94Nu\x87\x94.' (333b) 回溯(最近一次通话最后): 文件“/Users/User/PycharmProjects/twitterTest/venv/lib/python3.9/site-packages/celery/worker/consumer/consumer.py”,第 581 行,在 on_task_received 策略 = 策略[type_] KeyError: 'tweet.tasks.retweet'
【问题讨论】:
标签: python django celery tweepy django-celery