Цикл Apscheduler cronjob выполняет некоторые, но не все записи несколько раз

Всем привет у меня возник вопрос по поводу apscheduler и forloop

Вот моя работа, которая берет все записи из базы данных и сверяет их с текущим часом, если нет уже действующей записи, сохраняет ее в базе данных:

from datetime import datetime
from website.models import *
from website.forms import *
import website.lib.definer as dfin
import website.lib.formsaver as frmsave


all_in_use_items = PersonalisedItemInfo.objects

def pitemjob():
    for items in all_in_use_items:
        last_itemdatabase_entry = PersonalisedItem.objects.filter(item_info=items).order_by('-creation_date')[0]
        last_entry = last_itemdatabase_entry.creation_date

        last_entry_formatted = last_entry.strftime("%y-%m-%d %H")
        now = datetime.now() 
        current_time = now.strftime("%y-%m-%d %H")
        if last_entry_formatted == current_time:
            pass

        else:
            ptif_form= PersonalisedItemInfoForm(instance=items)
            url = ptif_form.instance.url

            price = dfin.ptdefiner(url)
            PersonalisedItem.objects.create(
                item_info = items,
                price = price
                )


В моем файле scheduler.py у меня есть:


def start():

    scheduler = BackgroundScheduler(timezone="Europe/Berlin")
    scheduler.start()
    scheduler.add_job(pitemjob,'cron', hour='20')


Теперь все работает нормально, если я не использую этот forloop вывод красивый и упорядоченный, но не учитывается. Поэтому иногда у меня есть двойные записи с учетом того, что ввели пользователи. Именно этого я хочу избежать с помощью forloop.

нормальный выход:

Database item entry 1 
Database item entry 2
Database item entry 3
Database item entry 4

но мой вывод forloop дает что-то вроде этого:

Database item entry 3
Database item entry 1 
Database item entry 2
Database item entry 3
Database item entry 4
Database item entry 4

совершенно случайные вводы в базу данных. Часто бывает случайным, что элементы сохраняются дважды. На самом деле это обратная вещь, которой я хочу добиться. Я просто хочу избежать добавления двойных записей в базу данных, но мой forloop и apscheduler делают это в любом случае.

Может кто-нибудь подсказать, как это исправить?

Заранее спасибо.

Вернуться на верх