Sono stato sfornare attraverso lo sviluppo di software di recente e hanno avuto un certo successo piegando il sedano alla mia volontà.Difficoltà con sedano: oggetto funzione non ha alcuna proprietà 'ritardo'
L'ho usato con successo per inviare e-mail, e ho appena provato ad usare quasi esattamente lo stesso codice (dopo aver riavviato tutti i processi ecc.) Per inviare sms tramite Twilio.
Tuttavia continuo a ricevere il seguente problema:
File "/Users/Rob/Dropbox/Python/secTrial/views.py", line 115, in send_sms
send_sms.delay(recipients, form.text.data)
AttributeError: 'function' object has no attribute 'delay'
Il mio codice è il seguente:
@celery.task
def send_email(subject, sender, recipients, text_body):
msg = Message(subject, sender=sender)
for email in recipients:
msg.add_recipient(email)
msg.body = text_body
mail.send(msg)
@celery.task
def send_sms(recipients, text_body):
for number in recipients:
print number
num = '+61' + str(number)
print num
msg = text_body + 'this message to' + num
client.messages.create(to=num, from_="+14804054823", body=msg)
send_email.delay quando viene chiamato dal mio views.py funziona perfettamente, ma non riesce send_sms.delay ogni volta con l'errore sopra.
Qualsiasi aiuto per la risoluzione dei problemi è apprezzato.
- Come richiesto: funzione decorata
@app.route('/send_mail', methods=['GET', 'POST'])
@roles_accepted('Admin')
def send_mail():
form = SendMailForm(request.form)
if request.method == 'POST':
if form.validate_on_submit():
emails = db.session.query(User.email).all()
list_emails = list(zip(*emails)[0])
send_email.delay('Subject', '[email protected]', list_emails, form.text.data)
return render_template('send_generic.html', form=form)
@app.route('/send_sms', methods=['GET', 'POST'])
@roles_accepted('Admin')
def send_sms():
form = SendMailForm(request.form)
if request.method == 'POST':
if form.validate_on_submit():
recipients = db.session.query(User.mobile).all()
list_recipients = filter(None, list(zip(*recipients)[0]))
send_sms.delay(list_recipients, form.text.data)
return render_template('send_generic.html', form=form, send_sms=send_sms)
mio Send_SMS sedano sta rivelando come un compito registrato:
e per config Sto semplicemente usando l'ospite: RabbitMQ
CELERY_BROKER_URL = 'amqp://[email protected]//'
CELERY_RESULT_BACKEND = 'amqp://[email protected]//'
puoi pubblicare la tua configurazione e le tue visualizzazioni di sedano? – ChillarAnand