Wenn Sie planen, dass ein SQL Server-Job alle X Minuten ausgeführt wird und der vorherige Aufruf nicht beendet wird, bevor die Anzahl der Minuten abgelaufen ist, überspringt er den Lauf, da er bereits ausgeführt wird, oder führt zwei Instanzen aus von dem Job, der die gleichen Schritte macht?Überspringt ein SQL Server-Auftrag einen geplanten Lauf, wenn er bereits ausgeführt wird?
Antwort
Der SQL Server-Agent überprüft, ob der Job bereits ausgeführt wird, bevor eine neue Iteration gestartet wird. Wenn Sie einen Job mit langer Laufzeit haben und dessen Zeitplan angezeigt wird, wird er bis zum nächsten Intervall übersprungen.
Sie können dies für sich selbst ausprobieren. Wenn Sie versuchen, einen Job zu starten, der bereits ausgeführt wird, erhalten Sie einen entsprechenden Fehler.
Ich bin mir ziemlich sicher, es wird es überspringen, wenn es läuft.
Welche Version von SQL Server verwenden Sie? Das scheint eine ziemlich einfache Sache zu sein, die man testen kann. Richten Sie einen Job mit einem WAITFOR ein, der eine einzelne Zeile in eine Tabelle einfügt und den Job so konfiguriert, dass er zweimal hintereinander ausgeführt wird (kürzer als WAITFOR DELAY).
Beim Ausführen eines solchen Tests in SQL Server 2005 übersprang er den Lauf, der überlappt wurde.
Ich überlegte, dies zu tun - aber es schien einfacher zu googeln und .. voila – Paul
- 1. Einen Cronjob jedes Mal anpassen, wenn er ausgeführt wird?
- 2. Wie überschreibt man einen Ordner, wenn er bereits existiert, wenn er mit Makedirs erstellt wird?
- 3. ANSI-SQL-Frage - wie fügt man einen Datensatz ein oder aktualisiert ihn, wenn er bereits existiert?
- 4. Ermitteln Sie, ob ein Ruby-Skript bereits ausgeführt wird
- 5. 2-teilig gespeicherter Prozess ist erfolgreich, wenn er stückweise ausgeführt wird, nicht erfolgreich, wenn er auf einmal ausgeführt wird
- 6. Warum gibt ein T-SQL-Block einen Fehler, selbst wenn er nicht einmal ausgeführt werden sollte?
- 7. Wie Code nach dem Verpassen eines geplanten Ereignisses ausgeführt wird?
- 8. wie einen geplanten Prozess in SQL Server
- 9. Wie kann ich einen Programm-Screenshot erstellen, wenn er als Windows-Dienst ausgeführt wird?
- 10. Skript nicht ausführen, wenn es bereits ausgeführt wird
- 11. Installshield überspringt benutzerdefinierte Aktion, wenn eine Anwendung bereits installiert ist
- 12. Code wird nur korrekt ausgeführt, wenn er mit Debugger durchlaufen wird?
- 13. Nichts tun, wenn die gleiche Funktion bereits ausgeführt wird
- 14. Programm ausführen, aber nicht, wenn bereits ausgeführt
- 15. Warum erhält ein SSH-Remote-Befehl weniger Umgebungsvariablen als wenn er manuell ausgeführt wird?
- 16. Wie zu verhindern, dass der Dienst erneut ausgeführt wird, wenn Android bereits ausgeführt wird
- 17. Was passiert, wenn ich auf eine Aufgabe warte, die bereits ausgeführt wird oder ausgeführt wird?
- 18. Invoke-Element nicht von geplanten Task ausgeführt
- 19. Wie fügt man einen Datensatz oder UPDATE ein, wenn er bereits existiert?
- 20. Wie schließe ich einen ChromeDriver, wenn er im Grid ausgeführt wird?
- 21. Javascript überspringt sonst wenn?
- 22. Modul wsgi_module ist bereits geladen, überspringt
- 23. SQL-Server-Reporting-Dienste: Wie ein Bericht ausgelöst wird, wenn er geöffnet
- 24. Migration von Flyway-Datenbanken wird automatisch ausgeführt, wenn ein neuer Krieg ausgeführt wird
- 25. Wie löst man einen unerwünschten Webrequest-Aufruf, wenn er bereits mit Timer läuft?
- 26. Wie wird JavaScript-Code ausgeführt, wenn ein Formular zurückgesetzt wird?
- 27. Wird ein Mutex entsperrt, wenn er außer Reichweite ist?
- 28. wie man einen jquery Timer pausiert, wenn er versteckt wird
- 29. Wie wird ein Formular angedockt, wenn das Projekt ausgeführt wird?
- 30. Wie wird Code ausgeführt, wenn ein Python-Skript geschlossen wird?
Ehrfürchtig, genau das wollte ich wissen. Ich habe einen E-Mail-Checker, der manchmal eine Weile braucht, um große E-Mails herunterzuladen. Da jede Minute ausgeführt wird, ist es sehr wichtig, dass eine zweite Instanz des Jobs nicht gestartet wird, wenn der erste noch nicht abgeschlossen ist. –
Gibt es eine Möglichkeit, dies zu erreichen, ich meine, das Überspringen zu vermeiden und eine andere Instanz des Jobs zu starten? Oder könnte man einfach einen anderen SQL-Job erstellen? Danke –