在 django_cron 上运行特定的 views.py 方法

我的views.py文件中有这个方法:


def getHistoricRates():

    """ Here we have the function that will retrieve the historical rates from fixer.io, since last month """

    rates = {}

    response = urlopen('http://data.fixer.io/api/2018-12-31?access_key=c2f5070ad78b0748111281f6475c0bdd')

    data = response.read()

    rdata = json.loads(data.decode(), parse_float=float) 

    rates_from_rdata = rdata.get('rates', {})

    for rate_symbol in ['USD', 'GBP', 'HKD', 'AUD', 'JPY', 'SEK', 'NOK', 'EUR']:

        try:

            rates[rate_symbol] = rates_from_rdata[rate_symbol]

        except KeyError:

            logging.warning('rate for {} not found in rdata'.format(rate_symbol)) 

            pass


    return rates


@require_http_methods(['GET', 'POST'])

def historical(request):

    date_str = "2018-12-31"

    if datetime.datetime.strptime(date_str,"%Y-%m-%d").weekday()<5:

        rates = getHistoricRates()

        fixerio_rates = [Fixerio_rates(currency=currency, rate=rate)

                     for currency, rate in rates.items()]

        Fixerio_rates.objects.bulk_create(fixerio_rates) 

        return render(request, 'historical.html') 

我想historical每天早上 9 点跑步,周末除外。


现在,我找不到任何关于如何运行现有方法或如何从cron.py文件中调用它的示例。


我确实配置了所有内容,django_cron但是我无法弄清楚如何从我的 cron 文件中“使用”这个方法来在特定时间运行它。


cron.py到目前为止,这是我的文件:


from django_cron import CronJobBase, Schedule

from .views import historical


class MyCronJob(CronJobBase):

    RUN_AT_TIMES = ['9:00']


    schedule = Schedule(run_at_times=RUN_AT_TIMES)

    code = 'fixerio.my_cron_job'    # a unique code


    def do(self):

        pass    # do your thing here

名称fixerio是我的应用程序的名称。


对此有何想法?


慕雪6442864
浏览 193回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python