我正在构建一个工具,可以从不同的数据库获取数据,对其进行转换,并将其存储在我自己的数据库中。我正在从APScheduler迁移到Celery,但我遇到了以下问题: 我使用一个调用JobRecords的类来存储作业运行的时间、是否成功以及遇到了哪些错误。我使用这一点是为了知道不要太过往回看更新的条目,特别是因为有些表有数百万行。 由于系统对于所有作业都是相同的,所以我从芹菜Task对象创建了一个子类。我确保该作业在Flask应用程序上下文中执行,并获取该作业成功完成的最新时间。我还确保为now注册了一个值,以避免查询数据库和添加作业记录之间的计时问题。 class RecordedTask(T
我有一个关于芹菜的问题。我正在调用一个名为task的函数,我想返回一个特定类的列表。但如果我这样做,我的服务器上会出现一个错误:
No module named 'modelsgert'
modelsgert是定义我的类的python文件的名称。我已经将相同的文件导入到位于我的服务器上的项目中,但他并不知道这一点。可能他发送了一个引用,指向celery服务器上文件的文件位置。
代码芹菜服务器:
from celery import Celery
from sqlalchemy import create_engine
from sqlalchemy.orm import ses
全。我已经用我的Flask应用程序设置了芹菜,我有一个问题,芹菜如何管理sqlalchemy会话。假设我初始化我的芹菜应用程序,我这样做(使用这个):
celery = make_celery(app)
#set up a test task
@celery.task(name='testcelery', ignore_result=True)
def test_celery():
db_session.execute("""INSERT INTO [dbo].[testconstraint]
VAL
我试图在heroku上部署一个烧瓶应用程序,在芹菜中使用背景任务。我已经实现了,这样芹菜过程就不会绑定到烧瓶应用程序的任何一个实例。
这在本地工作,我还没有看到一个错误。但是,当部署到heroku时,总是会出现相同的结果:芹菜任务(我只使用一个)在第一次运行时就成功了,但是后续对该任务的任何芹菜调用都会在sqlalchemy.exc.DatabaseError: (psycopg2.DatabaseError) SSL error: decryption failed or bad record mac中失败。如果我重新启动芹菜工人,循环就会继续。
有 显示相同的,但没有指定合适的解决方案。我
我使用python为烧瓶编写了一些单元测试/集成测试。我广泛地使用了这里编写的示例代码:
这些测试过去运行得非常完美,但现在我只是尝试再次运行它们,并且遇到了一个错误:
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on 'cloud-sql' ([Errno -2] Name or service not known)")
(有关此错误的背景信息:)
显然,这是告诉我,它试图连接到云-sql,但不
我已经为我们的web应用程序安排了一些使用celery节拍的重复性任务
该应用程序本身是使用金字塔web框架构建的。使用zopetransaction扩展管理会话
在celery中,我将应用程序用作库。我正在使用函数重新定义模型中的会话。
它工作得很好,但偶尔会引发InvalidRequestError: This session is in 'prepared' state; no further SQL can be emitted within this transaction
我不确定哪里出了问题,以及为什么它会发出这些警告。
示例代码:
在tasks.py中
def
我正在用FLASK做一个应用程序,我已经把芹菜加入其中了。但是,如果我想让芹菜工人也工作,我必须通过终端运行应用程序。(celery -A app.celery worker)。我尝试从主run.py文件运行它,如下所示
init.py
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.mail import Mail
from celery import Celery
from kombu import serialization
app = Flask(__name__)
我配置了我的项目,参考了以下答案:
我的extension.py文件:
import flask
from flask.ext.sqlalchemy import SQLAlchemy
from config import BaseConfig
from celery import Celery
from flask_mail import Mail
from celery.schedules import crontab
class FlaskCelery(Celery):
def __init__(self, *args, **kwargs):
super(
对不起,我的英语不好。 只有当我在"develop“分支中创建提交时,停止环境作业("stop on deployment server")才会存在。如果我确实合并请求,则执行作业"deploy to deployment server using ansible",但作业"stop on deployment server“未创建,并且无法手动执行。我不明白为什么(有一个简单的.gitlab-ci.yml文件。 .base_rules: &base_rules
rules:
- if: '$CI_MERGE_REQ
我目前的设置包括
酒瓶,瓶-SQLAlchemy,芹菜
现在我遇到的问题是,有时芹菜任务中的数据库查询会给出陈旧的数据,也就是说,如果我要求从表中获得最后一条记录,那么最后一条条目是在执行查询前10-15分钟插入的,有时我会看到这样的异常。
OperationalError("(OperationalError)“(2006年,\'MySQL服务器已经离开\‘)”,)’
以下为履带
File "/home/sys_user/repo/my_app/app/tasks/reminders.py", line 63, in run
config = Re
我有一个Django应用程序设置与一些预定的任务。该应用程序是部署在Heroku与Redis。如果任务在控制台中同步调用,或者在运行redis和celery时在本地运行,则该任务将运行。但是,计划的作业不在Heroku上运行。
我的任务是:
@shared_task(name="send_emails")
def send_emails():
.....
celery.py:
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
from cel