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?
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
:
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
Tags und Links python celery celerybeat
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.
aspnet50 oder ASP.NET 5.0 verwenden das maschinenweite .NET Framework, das auf Ihrem Computer installiert ist und das im Allgemeinen mit dem vorhandenen Ökosystem kompatibel ist. p>
aspnetcore50 oder ASP.NET Core 5.0 verwenden die neue app-lokale .NET Core-Plattform . .NET Core ist eine quelloffene Open Source Plattform und modulares Framework, das eine Teilmenge von .NET Framework enthält. Das Nachteil des Targeting von .NET Core ist, dass referenzierte Pakete keine Abhängigkeiten zum vollständigen .NET Framework haben können.
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.
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: -)
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?