【Django】celery收到发送邮件任务没反应(无限等待)- 阿里云ECS-CentOS7

在windows上使用celery异步发送邮件出现的一些问题 1.直接使用命令行 celery -A celery_tasks.tasks worker -l info, celery_tasks.tasks 阅读详情

一、起因:celery收到发送邮件任务没反应(无限等待)- 阿里云ECS-CentOS7

最近用阿里云部署Django项目,用celery处理发送邮件任务,celery服务已经启动,能Received task,但是收到任务后无限等待,没有进行Task xxx succeeded in.

  1. 我一直以为是celery没有配置好的问题,百度各种无果。
    以为是代码问题?看了又看,没问题啊、、、以为是 时区问题?AsiaShanghai? 没有效果。。。。。。

  2. 遂尝试放弃celery,开启一个线程去处理发送邮件的任务,发现线程一直在等待处理任务???那么就不是celery的问题了,是发送邮件的问题。

原来是如此,这damn的亲爱的阿里云把25端口给禁用了,导致无法发送邮件!!!

二、解决无法发送邮件的问题

Django项目的settings.py文件添加代码:

''' 阿里云Django邮件服务器配置 '''
# 其他配置不变,修改:
DEFAULT_FROM_EMAIL = 'xxxx@163.com'	# 默认邮件发送方:和发送邮箱的用户名相同
EMAIL_PORT = 465	# 修改Email端口为465或587,二选一,用不了换另一个
EMAIL_USE_SSL = True	# 使用SSL
# EMAIL_USE_TSL = False		# 禁用TSL

配置之后,再次尝试!!!

启动发送邮件的celery任务

Linux启动celery任务

celery -A celery_tasks.tasks worker -l info

Windows启动celery任务

celery -A celery_tasks.tasks worker -l info -P eventlet
发送邮件测试

在项目路径下输入python3,进入python3交互环境。

[root@banana ~]# cd 你的项目路径
[root@banana 你的项目路径]# python3

>>> from celery_tasks.tasks import send_register_active_email
>>> to_email = 'xxxx@qq.com'
>>> username = 'helloworld'
>>> token = 'thistoken'
>>> send_register_active_email.delay(to_email, username, token)
<AsyncResult: e5122c2a-75b9-4b6a-bccf-650f5e8c41f2>
测试成功!
[2020-06-01 13:37:46,114: INFO/ForkPoolWorker-1] Task celery_tasks.tasks.send_register_active_email[c43f36a7-3c41-45a0-bac0-18b059c5ccdb] 
succeeded in 3.290678153047338s: None
SSL和TSL的Django文档
EMAIL_USE_TLS(默认:False)

在与SMTP服务器通信时,是否使用TLS(安全)连接。这用于显式TLS连接,通常在端口587上。

EMAIL_USE_SSL(默认:False)

在与SMTP服务器通信时,是否使用隐式TLS(安全)连接。在大多数电子邮件文档中,这种类型的TLS连接称为SSL。它通常在端口465上使用。

注意: EMAIL_USE_TLS/EMAIL_USE_SSL 是互斥的,最多只能设置一个为True。

Celery 在Django 环境下无法接收消息问题解决 问题描述:        使用celery 作为分布式任务处理器,rabbitmq 作为消息处理器,长时间运行以后发现当Django 采用后台http方式运行的时候,celery 从rabbitmq 读取的数据一直提示序列化错误,而且无法配置多项CELERY_ACCEPT_CONTENT ,采用redis时则无法收到任何消息。 解决方案:       导致问题的原因主要是由于采用后台运行 阅读详情

相关推荐

【celery踩坑】celery定时和周期任务全部不执行

有一天,突然发现线上系统上的任务没有执行,状态一直是未完成。看了一下celery的beat日志,发现周期任务和定时任务都不执行了。重启项目,发现中,也只是执行前面几个周期或者定时任务,某个定时任务后面的所有任务都不执行了。

会一点前端、会一点Java、会一点Python 3366

Django使用Celery异步发送邮件

Celery 是一个简单、灵活且可靠的分布式系统,可以处理大量消息,同时为操作提供维护此类系统所需的工具。它是一个专注于实时处理的任务队列,同时也支持任务调度。

积跬步,至千里。 1475

Django之使用内置函数和celery发邮件的方法示例

主要介绍了Django之使用内置函数和celery发邮件的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

celery正常启动后能收到任务,但不执行任务的解决办法

win10下celery正常启动后能收到任务,但不执行任务的解决办法:

weixin_45075031的博客 2818

用FSL的eddy_topup pipeline完整处理DTI数据:从原理到实战,搞定涡流和磁化率畸变

本文详细介绍了如何使用FSL的eddy_topup pipeline完整处理DTI数据,解决涡流和磁化率畸变问题。从原理到实战,涵盖了数据格式转换、脑提取、b0图像处理等关键步骤,并提供了acqparams.txt配置和eddy命令的详细解析,帮助研究人员高效完成DTI数据校正。

weixin_29235525的博客 281

从零开始:手把手教你用VOACAP软件预测短波最佳工作频率(OWF)

本文详细介绍了如何使用VOACAP软件预测短波通信的最佳工作频率(OWF),涵盖软件安装、参数配置、电离层模型设置及结果解读。通过实战案例和优化技巧,帮助用户掌握短波传播特性,提升通信效率。特别适合业余无线电爱好者和专业通信人员参考。

weixin_30897079的博客 647

Django&celery异步发送邮件

pip install -U Celery 1> 开通SMTP邮件发送服务器:注册163邮箱>>设置>>勾选POP3/SMTP/IMAP>>客户端授权码>>得到授权码 2>项目project_test目录中添加celery_task包(__init__.py&task.py) 3>task.pyfrom celer...

xx6345386的博客 611

Django笔记三十八之发送邮件

这一篇笔记介绍如何在 Django 中发送邮件。在 Python 中,提供了 smtplib 的邮件模块,而 Django 在这个基础上对其进行了封装,我们可以通过来调用。

woaimx_1314的博客 2863

分享一个简单的迭代学习机器人双臂控制(MATLAB)

1 什么是迭代学习控制 迭代学习控制(iterative learning control,简称ILC)由Uchiyama于1978年首先提出,不过因为论文由日文撰写,影响不是很大。1984年,Arimoto等人用英文介绍了该方法。它是指不断重复一个同样轨迹的控制尝试,并以此修正控制律,以得到非常好的控制效果的控制方法。 迭代学习控制的特点是“在重复中学习”,通过反复的迭代修正,达到改善控制效果的目的。迭代学习控制的原理是根据系统前次运行所获得的输出误差信息,在控制过程中不断修正控制输入,随着迭代的进行,逐

weixin_45776027的博客 4483

S7-1200模拟量

将两种不同的金属或合金金属焊接起来,构成一个闭合回路,利用温差电动势来测量温度,当两端存在温度梯度时,回路中就会有电流通过,此时两端之间就存在电动势--热电动势,这就是所谓的塞贝克效应(seebeck effect)。温差越大,热电动势越高。热电偶是有正负极性的,所以需要确保导线连接到正确的极性,否则会造成明显的测量误差。为了使温度补偿达到最佳效果,必须将热电偶模块安装在温度稳定的环境中简述:两种金属,每一种金属随温度变化是不同的,出现温差--由俩金属构成的回路就会有电流经过,因此两端形成热电动势。

王阿妹小天才的博客 2589

Django:整理开发过程中遇到的错误和解决方法

Django是一款流行的Python Web框架,但在开发中可能会遇到一些常见的错误。以下是10个Django开发在运行项目,准备迁移时出现的如下错误: Traceback (most recent call last): File "C:\py3_env\lib\site-packages\django\apps\config.py", line 107, in create entry = module.default_app_config AttributeError: module...

SteveRocket's-Blog 6743

计算机应用数学--第一次作业

中科大 计算机应用数学 第一次作业

一杯水果茶!足矣~ 1328

【Celery】任务Failure或一直超时Pending

task进入队列后,部分任务出现Failure或者一直Pending,且业务代码没有报错。

Yikong的博客 2858

双Orin PCIe RC&EP模式互通

orin pcie 互通

乐于分享 3876

使用PyTorch和TextCNN实现英文长文本诗歌文本分类

在这个过程中,我们了解了如何进行文本数据预处理、构建TextCNN模型,并进行训练与评估。首先,我们需要将文本文件加载到内存中,并将每个诗歌作为一个样本。然后,我们需要将每个样本转换为数字表示,这可以通过将词汇表中的每个词语映射到一个唯一的整数来实现。此外,我们还需要将每个样本的长度统一为固定值,以便于模型输入。通过这个示例,我们可以学习如何构建一个简单但有效的文本分类模型,并在具体的应用场景中进行训练和预测。该模型通过使用多个不同尺寸的卷积核来捕捉文本中的不同长度的信息,并通过最大池化操作提取关键特征。

loop_syntax648的博客 253

Django配置使用celery异步发送邮件

Django配置使用celery异步发送邮件

分享一点有用的知识 926

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

学习django celery 遇到Received unregistered task of type ‘App07.tasks.hello_world‘. 错误解决过程

shared_task 也可以。celery 和 beat 启动。

weixin_58853115的博客 1371

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

使用Django实现邮件的发送出现问题及解决

在setting .py里配置如下字段: EMAIL_HOST = "smtp.163.com" EMAIL_PORT = 25 EMAIL_HOST_USER = "**********@XXX.com" EMAIL_HOST_PASSWORD = "AAAAAA" EMAIL_USE_TLS = False EMAIL_FROM = "**********@XXX.com" (1)错误...

qq_33124895的博客 2015

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

填坑-celery正常启动后能收到任务但不执行任务的解决办法

celery踩坑篇

北堂飘霜_记录 930

django-celery-redis异步发邮件

Django-Celery-Redis异步发邮件 python == 3.7.6 django == 2.1.8 celery == 4.4.7 redis == 3.5.3 eventlet == 0.26.1 什么是celery Celery是一个功能完备即插即用的任务队列。它使得我们不需要考虑复杂的问题,使用非常简单。celery适用异步处理问题,当发送邮件、或者文件上传, 图像处理等等一些比较耗时的操作,我们可将其异步执行,这样用户不需要等待很久,提高用户体验。 celery的特点是: 简单,

qq_15832329的博客 451

celery异步与定时任务

Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统,专注于实时处理的异步任务队列,同时也支持任务调度。 Celery的架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(task result store)组成。Celery本身不提供消息服务,但是可以方便的和第三方提供的消息中间件集成。包括,RabbitMQ, Redis等等Worker是Celery提供的任务执行的单元,worker并发的运行在分布式的系统节点中。Task result

qq_33816243的博客 1067

【疑难杂症】Celery的Received unregistered task错误的解决

项目的日志中报错误 发现了一个没有注册的任务。但是这个任务是其他项目里的定时任务。 解决办法: 在django的setting中配置了一个这个项目的celery的专属的队列 并且在执行的时候 celery xxxxxxx 之后 加上 -Q default_mq 指定这个worker使用的队列 参考资料: https://www.jianshu.com/p/b4c...

m0_37702587的博客 2749

Celery周期任务正常启动后能收到任务,但不执行任务的解决办法

后来发现,是因为Celery高版本已经是不支持window这时候要用到一个包 eventlet 将原本的执行语句改成如下。1.Django 中使用Celery设置周期任务,发现能收到任务,但是不执行任务内容。查了老半天,调了各种配置还是不行。今天处理Celery问题闷了。

weixin_46106723的博客 1217

问题:使用celery过程中部署后发现无法正常调用celery

线下本地环境:python版本2.7,celery版本3.1.25 在部署到服务器上后,无法调用,celery日志没有任何显示调用的痕迹 后来尝试修改启动命令行,依然没有效果///////// 最后发现了一片文章http://www.axiaoxin.com/article/228/ 线上将版本升级到这个版本celery4.1.0后,不停的报错。(默认是升级最新版) 但是这篇文章...

CaoMei_HuaCha的博客 968
上一篇: Linux阿里云ECS-CentOS7配置FastDFS和Nginx(二)
下一篇: Linux阿里云ECS-CentOS7——查看celery存储在redis内的数据
Spade_
博客等级 码龄10年 918粉丝 123原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值