使用celery和Django处理异步任务-part2

定期任务
我们经常需要在django项目中定期运行任务,在此芹菜可以通过芹菜节拍满足我们的需求,芹菜节拍不过是一个调度程序,该调度程序定期执行目标,并且可以隐式和显式定义。

请确保一次运行一个计划程序,否则一次将导致重复的任务

根据您所在的时区,在settings.py中设置时区,我们已经在本教程的前面进行了设置。

timezone = ‘Europe/London’

现在,我们可以通过两种方式创建定期任务,或者通过在celery.py中手动添加调度程序的代码,或者通过安装django-celery-beat软件包来使我们可以在Django Admin中创建调度程序。[……]

继续阅读

使用celery和Django处理异步任务

介绍
我们可能需要一些可以安排一些任务并定期运行一些任务或异步处理长任务的东西,而这一切都可以通过在Django Project中使用Celery来实现。

什么是Celery?
Celery是一个专注于实时处理的任务队列,它还支持任务调度。 Celery快速,简单,高度可用且灵活。

Celery需要消息传输来发送和接收消息,这可以由Redis或RabbitMQ完成。

入门
让我们开始在您的virtualenv中安装Celery软件包。

安装Celery

[crayon-686cc6e873af3[……]

继续阅读

Django开发人员常犯的7个错误

Django是强大的Web框架,但越强大责任也大。 在本文中,我们将介绍即使经验丰富的Django开发人员也会犯的常见错误,但是大多数成功的Django项目或早或晚都需要处理这些错误。

重新发明轮子
Django具有许多现成的功能,甚至在第三方软件包中还有更多功能。 在写东西之前,尝试“搜索”您要解决的问题-可能已经存在功能丰富的解决方案。

您也可以使用在线目录Django Projects,其中类别“ apps”(用于构建项目的小型组件)具有3200多个项目。 以下是清单前两页中有趣的程序包的简短示例:

Haystack模块化搜索Django
Django的Django[……]

继续阅读

kubectl常用命令

定义
Kubernetes命令的备忘单。

Master:控制Kubernetes节点的机器。这是所有任务分配的起点。

Node:这些计算机执行请求的分配任务。 Kubernetes主机控制它们。

Pod:一组部署到单个节点的一个或多个容器。容器中的所有容器共享一个IP地址,IPC,主机名和其他资源。 Pod将网络和存储从底层容器中抽象出来。这使您可以更轻松地在集群中移动容器。

Replication controller:此控件控制应在集群中某处运行的Pod的相同副本数。

Service:这将工作定义与吊舱分离。 Kubernetes服务代理将服务请求自动发送到[……]

继续阅读

jQuery prepend()与示例

在本教程中,我将解释jQuery中的.prepend()方法。

jQuery prepend()方法用于将指定的内容插入所选元素的开头。 它是jQuery中的内置方法。

如果我们想在所选元素的末尾插入内容,那么我们想使用jQuery .append()方法。

语法:

JQUERY PREPEND()方法的参数
此.prepend()方法接受两个参数,

内容
这是必需的参数,用于指定需要插入的内容。 要插入的可能值为:

  1. DOM元素
    HTML元素
    jQuery对象
    文本

FUNC[……]

继续阅读

在JavaScript中搜索数组的4种方法

在JavaScript中,有很多有用的方法可以在数组中查找项目。 您始终可以使用基本的for循环,但是使用ES6 +,有很多方法可以遍历数组并轻松找到所需的内容。

有这么多种不同的方法,您将使用哪种方法? 例如,当搜索数组时,是否要知道元素是否完全在数组中? 您需要元素的索引还是元素本身?

对于每种将要介绍的方法,必须了解它们都是Array.prototype的内置方法,这一点很重要。 这意味着您只需要将它们链接到任何带有点符号的数组上即可。 这也意味着这些方法不适用于对象或数组以外的任何对象(尽管与字符串重叠)。

我们将研究以下Array方法:
[crayon-686cc[……]

继续阅读

通过SQL了解Django中的分组依据-Django QuerySet和SQL并排

在任何类型的ORM中,聚合都是造成混乱的根源,而Django也是如此。 该文档提供了各种示例和备忘单,它们演示了如何使用ORM对数据进行分组和聚合,但是我决定从另一个角度进行研究。

在本文中,我将QuerySet和SQL并排放置。 如果您最喜欢SQL,那么这是适合您的Django GROUP BY速查表。

如何在Django中分组
为了演示不同的GROUP BY查询,我将使用Django内置的django.contrib.auth应用程序中的模型。

Django ORM生成带有长别名的SQL语句。 为简便起见,[……]

继续阅读

Django是2020年我的首选应用程序框架

Django是一个成熟而强大的Web应用程序框架,提供了许多“包含电池”功能。 对于您如何使用它,这是相当自以为是的,这减轻了开发人员的许多认知负担。

采用Django或任何自以为是的框架,与任何关系都非常相似。 是的,存在缺陷和小小的挫折,但是如果您在其中投入并投入自己(以及您的团队),您将获得最大的收益。

  • 优点
    对数据进行简单管理
    丰富的附件,插件和文档生态系统
    与工具和IDE的出色集成
    包括的大多数东西
    强大的DX(开发人员经验)
    命令行和长时间运行或守护进程的任务运行器
    随着需求的变化,您可以成长为框架

缺点
没有完美的框架,Django也不例外。[……]

继续阅读

使用Django和Postgres进行全文搜索

这些天,我需要全文搜索。这个区块中最酷的工具是Elastic Search和Sorl:他们快速,灵活,资源消耗沉重并且需要配合Java运行。

放弃这些选项后,我剩下了Xapian和postgres全文搜索的功能,而xapian似乎功能更丰富,我决定从postgres开始,因为它与django进行了天然集成,并且对这个特定项目的要求不高。

项目及其要求
您可能已经注意到,我正在运行job board。 Voorjob基本上是从lever.co聚合工作,并让用户搜索它。目前,我在数据库中大约有25,000个工作,这个数字增长缓慢,每增加2或3个工作,就会关闭另一个工作。是的,如果我采[……]

继续阅读

Django3中直接添加Websockets方式

现在Django 3.0附带了对ASGI的支持,将Websockets添加到Django应用中不需要任何额外的依赖关系。 在本文中,您将学习如何通过扩展默认的ASGI应用程序来使用Django处理Websocket。 我们将介绍如何在示例ASGI应用程序中处理Websocket连接,发送和接收数据以及实现业务逻辑。

入门
首先,您需要在计算机上安装Python> = 3.6。 Django 3.0仅与Python 3.6及更高版本兼容,因为它使用了async和await关键字。 完成Python版本设置后,创建一个项目目录并CD进入。 然后,将Django安装在virtualen[……]

继续阅读