Sellerie Beat-Zeitplan: Aufgabe sofort ausführen, wenn Sellerie zu schlagen beginnen?

8

Wenn ich einen Sellerie-Beat-Zeitplan mit timedelta(days=1) erstelle, wird die erste Aufgabe nach 24 Stunden ausgeführt, zitieren Sie die Sellerie-Beat-Dokumentation:

  

Wenn Sie ein Timedelta für den Zeitplan verwenden, wird die Aufgabe in Intervallen von 30 Sekunden gesendet ( die erste Aufgabe wird 30 Sekunden nach Beginn des Selleriestoßes gesendet und dann alle 30 Sekunden nach dem letzten Durchlauf). .

Aber Tatsache ist, dass es in vielen Situationen wichtig ist, dass der Scheduler die Aufgabe beim Start ausführt. Aber ich habe keine Option gefunden, die es mir erlaubt, die Aufgabe sofort nach dem Start von Sellerie zu starten, lese ich nicht vorsichtig, oder fehlt Sellerie diese Funktion?

    
timfeirg 10.03.2015, 10:39
quelle

2 Antworten

2

Ich entscheide, dass ich einfach eine Instanz jeder Aufgabe deklarieren und sie beim Selleriestart ausführen kann. Ich mag das überhaupt nicht, weil es den Start von Sellerie extrem langsam macht (wenn du langsam PeriodicTask hast), aber es macht was ich will.

füge das einfach an das Ende von tasks.py :

%Vor%     
timfeirg 18.07.2015, 07:30
quelle
0

Die beste Idee ist, eine Implementierung zu erstellen, die die Aufgabe selbst nach Abschluss der Aufgabe plant. Erstellen Sie außerdem eine Zugangssperre, damit die Aufgabe nicht mehrmals pro Moment ausgeführt werden kann. Die Ausführung einmal auslösen.

In diesem Fall

  • Sie brauchen keinen Selleriebeat-Prozess
  • Die Aufgabe wird garantiert ausgeführt
Vitaly Greck 15.06.2015 21:06
quelle

Tags und Links

Django: Verwenden von Annotate, Count und Distinct in einem Queryset ___ tag123aspnetcore ___ ASP.NET Core ist ein schlankes, zusammensetzbares und plattformübergreifendes Framework für die Erstellung von Web- und Cloud-Anwendungen. Es ist vollständig Open Source auf GitHub. ASP.NET Core-Anwendungen können unter Windows mit dem vollständigen .NET Framework oder einem kleineren .NET Core oder unter Linux und MacOS mit .NET Core und Mono ausgeführt werden. ___ answer29650149 ___

Der Eintrag "frameworks" in project.json ermöglicht die Unterstützung von ASP.NET Core 5.0 und ASP.NET 5.0 im selben Projekt. Jedes Framework kann unterschiedliche Abhängigkeiten aufweisen, da .NET Core nur eingeschränkt kompatibel ist.

Wenn Sie nur eines von ihnen als Ziel haben möchten (vielleicht, weil eine Abhängigkeit von einer Bibliothek besteht, die das vollständige .NET Framework wie Entity Framework 6 benötigt), können Sie das andere entfernen.

    
___ answer29554872 ___

Die "neue" Vorgehensweise bei Microsoft ermöglicht das Hosting der CLR außerhalb von Windows. Ich habe einen Blogpost über das machen, in Falls Sie interessiert sind.

Um das zu tun, mussten sie das Framework ein wenig aufteilen, und so wurde die CORE CLR geboren. Auf der Webseite :

  

.NET Core 5 ist die kleine optimierte Laufzeit, die die Basis von ASP.NET Core 5 ist. Sie läuft derzeit unter Windows und wird zur Unterstützung von Linux und Mac erweitert. Es ist ein leistungsstarkes und modulares Design und unterstützt volle Seite an Seite, um die Einführung neuer .NET Core-Versionen zu erleichtern, ohne andere Apps zu beeinträchtigen. Diese Produkte werden vom .NET-Team und in Zusammenarbeit mit einer Community von Open-Source-Entwicklern aktiv entwickelt. Gemeinsam widmen wir uns der Verbesserung und Erweiterung der .NET-Plattform mit neuen Funktionen und neuen Szenarien.

Um dies zu erreichen, wurden offensichtlich einige Merkmale verworfen. Und Asp.net muss eine begrenzte Teilmenge anzielen, damit Ihre App mit dem Kern-Framework arbeiten kann. Es gibt im Wesentlichen den Rahmen vor, um den Ihnen zur Verfügung stehenden Funktionsumfang auf das zu beschränken, was auf beiden unterstützt wird.

Das ist mein Verständnis, aber ich könnte falsch liegen: -)

    
Was sind aspnet50 und aspnetcore50? ___ qstntxt ___

Beim Erstellen einer ASP.NET 5-Anwendung von VS enthält die %code% -Datei den folgenden Eintrag:

%Vor%

Nun, was ist dieser Frameworks-Bereich und warum gibt es diese Einträge "aspnet50" und "aspnetcore50"? Ich weiß, dass es jetzt sowohl die vollständige .NET- als auch die Core-CLR gibt, aber dieser Abschnitt scheint zu implizieren, dass es zwei verschiedene ASP.NET 5 gibt: einen ASP.NET 5 und einen ASP.NET Core 5. Es gibt nur ein Framework ASP.NET 5, die möglicherweise auf der vollständigen .NET oder der Core CLR rechts ausgeführt werden? Wenn das so ist, warum brauchen wir diese Einträge?

    
___