EVE Light on Life

实现一个基于rq的延迟队列

RQ是用Python实现的一个简单队列任务, 但是没有延迟执行任务的功能, 例如一些业务场景 订单未支付需要30分钟后取消 某项操作成功1分钟后发送通知 等。 像这些任务是需要延迟操作。 我扩展了RQ中的Queue类,新增一个名为DelayQueue的类,用于存放延迟任务的队列,依旧使用Redis存储任务队列信息...

Python是如何实现issubclass的

使用Python内置的issubclass方法很方便的检测一个类是否是另一个类的子类。 这个是issubclass的文档: issubclass(class, classinfo) Return true if class is a subclass (direct, indirect or virtual) of class...

替换django自动生成的多对多关系中间表model

一 起因 使用Django的多对多关系Model非常方便,如两个model,文章和标签,是多对多关系,在Django的models.py可以这么定义: from django.db import models class Article(models.Model): name = models.CharField(m...

记一次postgresql数据库恢复

缘由 昨天需求需要在专题新增一个字段, 可在后台进行修改。修改完毕后部署是下午开始的时候,仅做了对应的功能测试,事实上这是万恶之源。之后运营便开始在系统上设置该字段,到了第二天早上产品说出问题了,所有修改过该字段的对象,关联的图片都只剩6张。 分析了一下,大概就知道问题所在。方便运营修改,开关设置在列表上操作,修改的时候前端提交...

Python实现一个简单的定时任务(sched实现分析)

在项目中经常有一些定时执行某项任务的情景,如定时清理过期订单等。如果项目比较小,可以自己实现这个定时任务,不必要依靠第三方库,使用Python的标准库sched即可。 实现每天凌晨4点运行任务的例子: import time from datetime import datetime import sched def per...