首页 > 解决方案 > 是否可以让 Celery 在后台运行无限循环?(烧瓶)

问题描述

我有以下芹菜任务:

@celery.task
def ScrapeWhileTrue():
    current_titles = scrape_title()
    current_urls = scrape_url()
    while(True):
        time.sleep(10)
        print("completing a test")
        current_titles2 = scrape_title()
        current_urls2 = scrape_url()
        if current_titles != current_titles2:
            print("New listings!")
            new_titles = set(current_titles2) - set(current_titles)
            new_urls = set(current_urls2) - set(current_urls)
            # send_mail(new_titles, new_urls)
            current_titles = current_titles2
            current_urls = current_urls2

Mt HTML 包含两个按钮,一个将数据从表单发送到不同的功能。我希望第二个按钮可以切换。当它切换时,我希望它运行上面的 Celery 任务。

@app.route('/', methods=['GET', 'POST'])
def index():

    if request.form['submit'] == 'Send':
        #Set info
        global url
        url = CraiglistScraper(location, postal, max_price, radius, query, carorpart)
        flash('Info set')

    else:
        flash('Scraping')
        ScrapeWhileTrue()


    return redirect(url_for('index'))

有可能发生这样的事情吗?还是我需要将它作为守护进程运行(我不知道如何)?

谢谢!

标签: pythoncelery

解决方案


推荐阅读