我是芹菜的新手,并试图在我的应用程序中使用它.以下是我的基本应用程序结构
my_app
|-run.py
|-app
|-mod1
|-mod2
|-tasks
|-__init__.py
|-email
|-other_tasks_file
Run Code Online (Sandbox Code Playgroud)
我想将所有后台任务限制在我的任务模块中.在我的任务的init .py中
from celery import Celery
celery = Celery('my_app', broker='redis://localhost:6379/0')
Run Code Online (Sandbox Code Playgroud)
在我的任务/电子邮件中我有
from app.tasks import celery
@celery.task
def send_email():
#do stuff
Run Code Online (Sandbox Code Playgroud)
从终端我开始使用工人
celery -A app.tasks worker --loglevel=DEBUG
Run Code Online (Sandbox Code Playgroud)
但我的任务没有出现在芹菜的任务列表中.此外,一旦我从解释器运行我的任务就像这样
>>from app.tasks import email
>>email_result = email.send_email.delay()
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我在芹菜终端得到以下回复
Received unregistered task of type 'app.tasks.emails.send_email'.
The message has been ignored and discarded.
Did you remember to import the module containing this task?
Or maybe you are using relative imports?
Please see url for …Run Code Online (Sandbox Code Playgroud) 我有一个 Cloudfront 发行版,我使用一个 S3 存储桶作为源。存储桶中包含私有和公共数据,按文件夹分隔 - public_folder_1, public_folder_2, private_folder_1, private_folder_2。我想使用 cloudfront 仅提供 2 个公共文件夹中的内容。我想要xxx.cloudfront.net/public_folder_1/file1去的public_folder_1请求xxx.cloudfront.net/public_folder_2/file1和去的请求public_folder_2。
我在发行版中创建了 2 个源,其中包含源名称 + 路径 -mybucket/public_folder_1以及mybucket/public_folder_22 个文件夹。我还创建了两个带有路径模式的行为 -public_folder_1/*并且public_folder_2/*(我已经尝试/在路径模式中添加一个引导,它似乎没有什么区别)。但是我无法通过 cloudfront 访问文件。
如果我将任一行为的路径模式更改为*而不是,public_folder_x/*那么我可以使用xxx.cloudfront.net/filex. 我对此的担忧是,如果我在两个文件夹中有 2 个同名文件,cloudfront 怎么知道要使用哪个文件夹作为源?我不想为每个原始路径创建和管理单独的发行版。
我在 python 中使用 selenium 和 webdriver 从网站下载 csv 文件。文件被下载到指定的下载目录中。这是我的代码的概述
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList", 2)
fp.set_preference("browser.download.manager.showWhenStarting", False)
fp.set_preference("browser.download.dir",'xx/yy')
fp.set_preference('browser.helperApps.neverAsk.saveToDisk', "text/plain, application/vnd.ms-excel, text/csv, text/comma-separated-values, application/octet-stream")
driver = webdriver.Firefox(fp)
driver.get('url')
Run Code Online (Sandbox Code Playgroud)
我需要print将此 csv 的内容发送到终端。许多具有随机名称的类似文件将被下载到同一个文件夹中,因此通过文件名访问该文件将不起作用,因为我事先不知道它是什么