Az ütemezett feladat a kulcs. Ütemezett és háttérmunkák (1Cv8)

Munka mechanizmusa

A feladatmechanizmust úgy tervezték, hogy bármely alkalmazást vagy funkciót ütemezett vagy aszinkron módon hajtson végre.

A munkamechanizmus a következő feladatokat hajtja végre:

  • Képes rutin eljárások meghatározására a rendszerkonfiguráció szakaszában;
  • Meghatározott műveletek végrehajtása ütemterv szerint;
  • Egy adott eljárás vagy függvény hívásának végrehajtása aszinkron, azaz. anélkül, hogy megvárná annak befejezését;
  • Egy adott munka előrehaladásának nyomon követése és annak befejezettségi állapotának megállapítása (a végrehajtás sikerességét vagy kudarcát jelző érték);
  • Az aktuális feladatok listájának beszerzése;
  • Képes kivárni egy vagy több feladat elvégzését;
  • Jobkezelés (lemondási lehetőség, végrehajtás letiltása stb.).

A munkamotor a következő alkatrészekből áll:

  • Ütemezett feladatok metaadatai;
  • Ütemezett feladatok;
  • Háttérmunkák;
  • Feladat ütemező.

Háttérfeladatok – az alkalmazási feladatok aszinkron végrehajtására tervezték. A háttérfeladatokat a beépített nyelv segítségével valósítják meg.

Ütemezett feladatok – az alkalmazási feladatok ütemezett végrehajtására tervezték. Az ütemezett feladatok az információs bázisban tárolódnak, és a konfigurációban meghatározott metaadatok alapján jönnek létre. metaadatokat rutinfeladat olyan információkat tartalmaznak, mint a név, módszer, felhasználás stb.

Az ütemezett jobok ütemezése meghatározza, hogy az ütemezett jobhoz tartozó metódust mikor kell végrehajtani. Az ütemezés általában az infobázisban van beállítva, de beállítható a konfigurációs szakaszban is (például előre meghatározott ütemezett feladatokhoz).

A feladatütemező az ütemezett feladatok végrehajtásának ütemezésére szolgál. Az ütemező minden ütemezett feladatnál rendszeresen ellenőrzi, hogy az aktuális dátum és idő egyezik-e az ütemezett job ütemezésével. Ha egyezik, az ütemező ütemezi a feladat futtatását. Ehhez ennek az ütemezett feladatnak megfelelően az ütemező létrehoz egy háttérfeladatot, amely elvégzi a tényleges feldolgozást.

Háttérmunkák

A háttérmunkák hasznosak összetett számítások elvégzéséhez, amikor a számítás eredménye hosszú idő után megkapható. A munkamotor rendelkezik eszközökkel az ilyen számítások aszinkron végrehajtására.

A háttérfeladathoz van egy társított metódus, amely a háttérfeladat futtatásakor kerül meghívásra. A háttérfeladat módszer bármely nem globális megosztott modul eljárás vagy függvény lehet, amely meghívható a kiszolgálón. A háttérfeladat paraméterei tetszőleges értékek lehetnek, amelyek átadhatók a szervernek. A háttérfeladat paramétereinek pontosan meg kell egyeznie az általa meghívott eljárás vagy függvény paramétereivel. Ha a háttérfeladat metódusa egy függvény, akkor a visszatérési értékét a rendszer figyelmen kívül hagyja.

Egy háttérfeladatnak lehet kulcsa – bármilyen alkalmazásérték. A kulcs korlátozza a háttérfeladatok indítását - időegységenként csak egy háttérfeladat hajtható végre egy adott kulcsértékkel és a háttérfeladat metódusának megadott nevével (a metódus neve a modul nevéből és a az eljárás vagy funkció). A kulcs lehetővé teszi az azonos metódusokkal rendelkező háttérjobok csoportosítását egy bizonyos alkalmazásattribútum szerint, így egy csoporton belül legfeljebb egy háttérfeladat kerül végrehajtásra.

A háttérfeladatok létrehozása és kezelése programozottan történik bármilyen kapcsolatról. Bármely felhasználó létrehozhat háttérfeladatot. Ezzel egyidejűleg az azt létrehozó felhasználó nevében is végrehajtódik. Az adminisztrátori jogokkal rendelkező felhasználó, illetve az ezeket a háttérfeladatokat létrehozó felhasználó bármilyen kapcsolatról fogadhat feladatokat, és várhatja azok befejezését.

A háttérfeladat pusztán egy munkamenet objektum, de nem tartozik egyetlen felhasználói munkamenethez sem. Minden feladathoz létrejön egy speciális rendszermunkamenet, amely a hívást kezdeményező felhasználó nevében fut. A háttérmunkáknak nincs állandó állapota.

Egy háttérmunka más háttérmunkákat is létrehozhat. A kliens-szerver verzióban ez lehetővé teszi a komplex számítások párhuzamosítását a fürt munkafolyamatai között, ami jelentősen felgyorsíthatja a számítási folyamat egészét. A párhuzamosítás több gyermek háttérmunka létrehozásával valósul meg, és megvárja, amíg mindegyik befejeződik a fő háttérfeladatban.

A sikeres vagy sikertelen háttérfeladatokat a rendszer 24 óráig tárolja, majd törli. Ha a futó háttérfeladatok száma meghaladja az 1000-et, akkor a legrégebbi háttérfeladatok is törlődnek.

Ütemezett feladatok

Az ütemezett feladatok akkor használatosak, ha bizonyos időszakos vagy egyszeri műveleteket kell végrehajtania az ütemezésnek megfelelően.

Az ütemezett feladatok az információs bázisban tárolódnak, és a konfigurációban meghatározott ütemezett feladat metaadatai alapján jönnek létre. A metaadatok egy ütemezett feladat olyan paramétereit határozzák meg, mint: hívott metódus, név, kulcs, használati képesség, előre meghatározás jele stb. ütemezett feladat végrehajtásához stb.

Az ütemezett feladatok létrehozása és kezelése programozottan történik bármely kapcsolatról, és csak rendszergazdai jogokkal rendelkező felhasználók számára engedélyezett.

Jegyzet. Amikor bent dolgozik fájl verzió lehetőség van ütemezett feladatok létrehozására és szerkesztésére a feladatütemező indítása nélkül.

Az ütemezett feladat egy metódushoz van társítva, amelyet az ütemezett feladat végrehajtásakor hív meg. Az ütemezett job módszer lehet egy nem globális megosztott modul bármely olyan eljárása vagy funkciója, amely meghívható a kiszolgálón. Az ütemezett feladat paraméterei bármilyen értéket megadhatnak, amelyet át lehet adni a szervernek. Az ütemezett job paramétereinek pontosan meg kell egyeznie az általa meghívott eljárás vagy függvény paramétereivel. Ha az ütemezett feladat metódusa egy függvény, akkor a visszatérési értékét a rendszer figyelmen kívül hagyja.

Az ütemezett feladatnak lehet kulcsa – bármilyen alkalmazott érték. A kulcs korlátozást vezet be az ütemezett feladatok elindítására, mivel időegységenként az azonos metaadat-objektumhoz tartozó ütemezett feladatok közül csak egy ütemezett feladat hajtható végre egy bizonyos kulcsértékkel. A kulcs lehetővé teszi az ugyanazon metaadat-objektumhoz társított ütemezett feladatok csoportosítását egy bizonyos alkalmazásattribútum szerint, így egy csoporton belül legfeljebb egy ütemezett feladat hajtható végre.

A konfigurálás során előre meghatározott ütemezett munkákat adhat meg. Az előre meghatározott ütemezett jobok nem különböznek a szokásos ütemezett joboktól, kivéve, hogy kifejezetten nem hozhatók létre vagy nem törölhetők. Ha az ütemezett feladat metaadatai a következőre vannak állítva előre meghatározott ütemezett feladat jele, akkor a konfiguráció frissítésekor automatikusan létrejön egy előre meghatározott ütemezett feladat az infobázisban. Ha az előre meghatározott jelölőnégyzet nincs bejelölve, akkor a konfiguráció frissítésekor az előre meghatározott ütemezett feladat automatikusan törlődik az információs bázisból. Egy előre meghatározott ütemezett feladat tulajdonságainak kezdeti értékei (például ütemezés) a metaadatokban vannak beállítva. A jövőben, amikor az alkalmazás fut, ezek módosíthatók. Az előre meghatározott ütemezett feladatoknak nincsenek paraméterei.

Az ütemezett job ütemezése határozza meg, hogy az ütemezett job mely időpontokban induljon el. Az ütemezés lehetővé teszi a következők beállítását: a feladat kezdésének és befejezésének dátuma és időpontja, a végrehajtás időtartama, a hét napjai és hónapjai, amikor az ütemezett feladatot végre kell hajtani stb. (lásd a beépített feladat leírását). nyelven).

Példák ütemezett feladatütemezésekre:

Minden órában, csak egy nap

Újrapróbálkozási periódusnapok = 0, újrapróbálkozási periódusDuringDay = 3600

Minden nap naponta egyszer

Retry PeriodDays = 1, Retry PeriodDuringDay = 0

Egy nap, egyszer

Újrapróbálkozási időszak Napok = 0

Minden második nap naponta egyszer

Újrapróbálkozási időszak napja = 2

Óránként 01:00 és 07:00 között minden nap

Újrapróbálkozási időszak napjai = 1

Újrapróbálkozási időszak a nap folyamán = 3600

Kezdési időpont = 01.00

Vége = 07.00

Minden szombaton és vasárnap 09.00 órakor

Újrapróbálkozási időszak napjai = 1

A hét napjai = 6, 7

Kezdési időpont = 09.00

Minden nap egy hét, elmúlik a hét

Újrapróbálkozási időszak napjai = 1

Időszak Hetek = 2

Egyszer 01:00-kor

Kezdési időpont = 01.00

Minden hónap utolsó napja 9:00.

Újrapróbálkozási időszak napjai = 1

NapHónapban = -1

Kezdési időpont = 09.00

Minden hónap ötödikén 9:00-kor

Újrapróbálkozási időszak napjai = 1

nap/hónap = 5

Kezdési időpont = 09.00

Minden hónap második szerdája 9:00 órakor

Újrapróbálkozási időszak napjai = 1

A hét napja a hónapban = 2

A hét napjai = 3

Kezdési időpont = 09.00

Ellenőrizheti, hogy egy feladat végrehajtásra kerül-e egy adott dátumon (a ScheduledTasks Schedule objektum RequiredExecution metódusa). Az ütemezett feladatokat mindig a nevében hajtják végre konkrét felhasználó. Ha az ütemezett job felhasználója nincs megadva, akkor a végrehajtás a rendszergazdai jogosultságokkal rendelkező alapértelmezett felhasználó nevében történik.

Az ütemezett feladatok végrehajtása háttérfeladatok segítségével történik. Amikor az ütemező megállapítja, hogy egy ütemezett feladatot el kell indítani, az ütemezett feladat alapján automatikusan létrejön egy háttérfeladat, amely minden további feldolgozást végrehajt. Ha ez az ütemezett feladat már fut, akkor az ütemezésétől függetlenül nem fut újra.

Az ütemezett munkák újraindulhatnak. Ez különösen akkor igaz, ha az ütemezett feladatmódszer végrehajtását garantálni kell. Az ütemezett feladat újraindul, ha rendellenesen leállt, vagy ha a munkavégző folyamat (az ügyfél-kiszolgáló verzióban) vagy az ügyfélfolyamat (a fájlverzióban), amelyen az ütemezett feladat futott, rendellenesen leállt. Az ütemezett feladatnál megadhatja, hogy hányszor kell újraindítani, valamint megadhatja az újraindítások közötti intervallumot. Az újraindítható ütemezett job metódusának megvalósításánál figyelembe kell venni, hogy újraindításkor a végrehajtása elölről indul, és nem az összeomlás pillanatától folytatódik.

Ezt fontos megjegyezni idő vége nem feltétlenül fejezi be a háttérmunkát a megadott időpontban. Néhány kijelentés:

* Egy háttérfeladat figyelmen kívül hagyhatja az automatikus törlést, ha nincs lefagyva, hanem tovább fut hogy az oka hogy nem lehet minden platformműveletet visszavonni. Ha végrehajtják ciklikus kód beépített nyelv, a munka törölhető, ellenkező esetben nem. Minden attól függ, hogy mit csinál a munka. * Befejezési idő – az a határ, amelyen belül egy feladat elkezdődhet és nem érhet véget? * Kényszer megszüntetés A job visszaállítja a tranzakció kezdetének pillanatában végrehajtott módosításokat?

A háttérfeladatok végrehajtásának sajátosságai fájl és kliens-szerver verziókban

A háttérfeladatok végrehajtásának mechanizmusa a fájl és a kliens-szerver verziókban eltérő.

  • A fájlverzióban létre kell hoznia egy dedikált ügyfélfolyamatot, amely háttérfeladatokat hajt végre. Ehhez az ExecuteJobProcessing globális kontextusfüggvényt rendszeresen meg kell hívni az ügyfélfolyamatban. Csak egy ügyfélfolyamat per információs bázis háttérfeladatokat kell feldolgoznia (és ezért hívnia kell ezt a funkciót). Ha nem jött létre ügyfélfolyamat a háttérfeladatok feldolgozásához, akkor a jobmotor programozott elérésekor a „Job manager nem aktív” hibaüzenet jelenik meg. Nem ajánlott olyan ügyfélfolyamatot használni, amely más funkciók háttérfeladatait dolgozza fel.

A háttérjobokat feldolgozó ügyfélfolyamat elindítása után a többi ügyfélfolyamat programozottan hozzáférhet a háttérfeladat-mechanizmushoz, pl. háttérmunkákat futtathat és kezelhet.

A kliens-szerver verzióban a feladatütemezőt a háttérfeladatok végrehajtására használják, amely fizikailag a fürtkezelőben található. Az összes sorban álló háttérfeladat ütemezője a legkevésbé terhelt munkavégző folyamatot kapja, és azt használja a megfelelő háttérfeladat futtatására. A dolgozói folyamat végrehajtja a munkát, és értesíti az ütemezőt a végrehajtás eredményeiről.

A kliens-szerver verzióban lehetőség van az ütemezett feladatok végrehajtásának blokkolására. Az ütemezett feladatok végrehajtásának blokkolása a következő esetekben történik:

  • Az ütemezett feladatok kifejezett blokkolása van beállítva az információs bázison. A zár a fürtkonzolon keresztül állítható be;
  • Kapcsolódási blokk került beállításra az információs bázison. A zár a fürtkonzolon keresztül állítható be;
  • A SetExclusiveMode() metódus a beépített nyelvből lett meghívva a True paraméterrel;
  • Néhány más esetben (például az adatbázis-konfiguráció frissítésekor).

Ütemezett munka metaadatainak létrehozása

Mielőtt programozottan hozna létre egy ütemezett feladatot az információs bázisban, létre kell hoznia egy metaadat objektumot.

Ütemezett job metaadat objektum létrehozásához a konfigurációs fában az Ütemezett jobok ág Általános ágában, hajtsa végre a Hozzáadás parancsot, és töltse ki az ütemezett feladat alábbi tulajdonságait a tulajdonságok palettán:

Metódus neve – Adja meg az ütemezett munkamódszer nevét.

Kulcs – adjon meg egy tetszőleges karakterlánc értéket, amely az ütemezett feladat kulcsaként lesz használva.

Ütemezés – az ütemezett feladat ütemezését adja meg. Ütemezés létrehozásához kattintson a "Megnyitás" linkre, és állítsa be a szükséges értékeket a megnyíló ütemezési űrlapon.

Az Általános lap megadja a feladat kezdő és befejező dátumát, valamint az ismétlési módot.

A „Napi” lap meghatározza a feladat napi ütemezését.

Adja meg az ütemtervet:

  • a feladat kezdési és befejezési időpontja;
  • a feladat befejezési időpontja, amely után kényszeresen befejeződik;
  • feladatismétlési időszak;
  • az ismétlések közötti szünet időtartama;
  • végrehajtás időtartama.

A feltételek tetszőleges kombinációja megengedett.

A feladat heti ütemezése a Heti lapon van megadva.

Jelölje be a hét azon napjaihoz tartozó jelölőnégyzeteket, amelyeken a feladat futni fog. Ha meg szeretné ismételni a munkát, adja meg az újrapróbálkozási időközt hetekben. Például a feladat 2 hét alatt fut le, az ismétlés értéke 2.

A „Havi” lapon a feladat havi ütemezése látható.

Jelölje be azoknak a hónapoknak a jelölőnégyzeteit, amelyekben a feladat futni fog. Ha szükséges, megadhat egy konkrét végrehajtási napot (hónapot vagy hetet) a hónap / hét elejétől vagy a végétől.

Használat - ha be van állítva, a feladat az ütemezésnek megfelelően fog végrehajtódni.

Előre definiált – ha be van állítva, a feladat egy előre meghatározott feladat.

Újrapróbálkozások száma összeomláskor – Megadja az összeomláskor végrehajtott újrapróbálkozások számát.

Újrapróbálkozási időköz összeomláskor – Megadja az összeomláskor jelentkező újrapróbálkozási időközt. Példák

Háttérfeladat létrehozása "Index frissítése teljes szöveges keresés»:

BackgroundJobs.Run("UpdatingFullTextSearchIndex");

Ütemezett feladat létrehozása "Szekvenciák visszaállítása":

Ütemezés = New ScheduleRegulationTask; Schedule.RepeatPeriodDays = 1; Schedule.RepeatPeriodDuringDay = 0;

Task = ScheduledTasks.Create ScheduledTask("RestoringSequences"); Task.Schedule = Ütemezés; Task.Write();

Munkakonzol

Feldolgozás ITS-sel, kezeli az ütemezett feladatokat:

Dolgozzon ütemezett feladatokkal

Munkaobjektumok

A jobobjektumokra nem hivatkoznak, hanem az adatbázisban tárolódnak valamilyen speciális tárolóban.

Ha az "Előre definiált" jelző engedélyezve van a metaadatokban, akkor egy ilyen objektum automatikusan létrejön az 1C:Enterprise indulásakor, és mindig pontosan egy példányban létezik. Egy ilyen objektum nem törölhető.

Ha az "Előre definiált" jelző nincs beállítva, akkor egy ilyen feladat objektumai programozottan jönnek létre és törlődnek, megadva az ütemezést és a paramétereket.

Feladatlista beszerzése

A feladatok listája a módszerrel szerezhető be GetRegularAssignments globális munkaügyi vezető Ütemezett feladatok

Ütemezett állások menedzser

GetScheduledJobs (GetScheduledJobs)

Szintaxis:

GetRegular Tasks(<Отбор>)

Lehetőségek:

<Отбор>(választható)

Típus: Szerkezet. A kijelölést meghatározó struktúra. A struktúra értékei a következők lehetnek: Egyedi azonosító, Kulcs, Metaadatok, Előre meghatározott, Használat, Név. Ha a kijelölés nincs beállítva, az összes ütemezett feladat megtörténik.

Ha metaadatok alapján szűr, megadhatja az ütemezett feladat metaadat-objektumát vagy annak nevét Metaadat értékként.

Visszatérési érték:

Típus: Tömb.

Leírás:

Ütemezett feladatok tömbjét kapja meg a megadott kijelöléshez. Az ütemezett feladatok fogadása csak a rendszergazda számára lehetséges.

Elérhetőség:

Ütemezett = ScheduledTasks.Get ScheduledTasks(Selection);

Minden ütemezett ciklusból ütemezetthez NewLine = ScheduledTasksList.Add(); NewString.Metadata = Scheduled.Metadata.View(); NewLine.Name = Ütemezett.Név; NewString.Key = Ütemezett.Kulcs; NewString.Schedule = Ütemezett.Ütemezés; NewString.User = Regular.UserName; NewString.Predefined = Ütemezett.Előre definiált; NewString.Usage = Regulatory.Usage; NewString.Identifier = Scheduled.UniqueIdentifier;

LastTask = Ütemezett.LastTask; Ha a LastQuest<>Undefined Akkor NewString.Running = LastTask.Start; NewString.Status = LastJob.Status; EndIf; EndCycle;

Teremtés

Az ütemezett feladatkezelő CreateRegularTask metódusával készült:

ScheduledJob = ScheduledJobs.Create ScheduledJob(MetadataChoice);

Ütemezett feladat.Name = Név; ScheduledTask.Key = Kulcs; ScheduledTask.Use = Használat; ScheduledTask.UserName = UsersChoice; ScheduledTask.Number of RepetitionsWhen Crashing = RetriesWhen Crashing; ScheduledTask.RetryIntervalOnAccident = RetryIntervalOnAccident; ScheduledTask.Schedule = Ütemezés; ScheduledTask.Write();

TaskObject = ScheduledTasks.Create ScheduledTask("ExecuteExchange");

TaskObject.Name = Név; JobObject.Use = igaz;

A jobobjektumnak van egy "Paraméterek" mezője, amelyben a metódus paraméterei be vannak állítva:

Ütemezett munka

Lehetőségek(Paraméterek)

Használat:

Olvasás és írás.

Leírás:

Típus: Tömb. Ütemezett feladatparaméterek tömbje. A paraméterek számának és összetételének meg kell felelnie az ütemezett feladatmódszer paramétereinek.

Elérhetőség:

Szerver, vastag kliens, külső kapcsolat.

Jegyzet:

Az olvasási és írási képesség csak a rendszergazda számára elérhető.

Eltávolítás

A munkaobjektum Delete() metódusával törölve:

ScheduledTask.Delete();

Állásobjektum beszerzése

  • lista a GetRegularTasks metódussal:

Ütemezett = ScheduledTasks.Get ScheduledTasks(Selection);

  • a feladatkezelő FindByUniqueID metódusán keresztül:

Feladat = ScheduledTasks.FindBy UniqueIdentifier(UID);

Az 1C Enterprise konfigurációiban ütemezett és háttérfeladatok vannak. Ezeket a munkákat az egyes munkák ütemezése szerint ütemezzük. Egyes feladatok kezdetben egy időzítőn hajtódnak végre bizonyos másodpercek elteltével, ami hátrányosan befolyásolhatja a teljesítményt, és egyértelműen megzavarhatja az információs bázisban végzett munkát.

Az ütemezett és háttérfeladatok szerkesztéséhez az adminisztrációs lapon válassza a bal oldalon található "Rendszeres és háttérfeladatok" lehetőséget. Megjelenik a meglévő feladatok listája, állapotuk, ütemezésük és egyéb információk.

Ha néhányszor kattint valamelyik feladatra, megnyílik egy ablak a feladat tulajdonságaival. Itt számos beállítást módosíthat ízlése szerint, beleértve a feladat ütemezését is. Egy feladat letiltásához törölni kell az „Engedélyezve” jelölőnégyzet bejelölését. De ha a feladat ütemezett futás, akkor rendkívül fontos, hogy minden háttérfeladathoz külön felhasználót használjunk teljes jogokkal.

A feladatütemezési paraméterek nagyon rugalmasak, de továbbra is kívánatos minden feladatot úgy beállítani, hogy egyszerre csak 1 feladat fusson, lehetőleg munkaidőn kívül. Kivételt csak több kapcsolódó infobázis szinkronizálása jelenthet, például a vállalati számvitel + bérszámfejtés és a személyzetkezelés.

Banki osztályozó letöltése - vasárnap 4:30
Árfolyamok betöltése - minden nap; 7:00
Szöveg kinyerése - minden nap; 6:00.
Üzenetküldés munkafolyamat-fiókokhoz – minden nap; 10800 másodpercenként.
Egységek frissítése - minden nap; 5:00:00-tól naponta egyszer
Könyvelői feladatok frissítése - minden nap; 6:30:00-tól naponta egyszer
A PPD index frissítése (teljes szöveges keresés) - minden nap; 10800 másodpercenként.
Összesített átépítés - minden nap, a hét napjai szerint [szombat]; 3:00:00-tól naponta egyszer
A változtatási tilalom relatív dátumainak aktuális értékeinek újraszámítása - minden nap; 7:00:00-tól naponta egyszer
Index egyesítése PPD (teljes szöveges keresés) - minden nap; 4:00:00-tól naponta egyszer
Elavult szinkronizálási információk törlése - minden nap; 3:30:00-tól naponta egyszer
A kiszámított összegek időszakának beállítása - minden nap, a hónap 5. napján; 1:00:00-tól naponta egyszer

Az 1C-ben végzett munka során számos rutinművelet van, amelyeket ütemezetten kell elindítani vagy kialakítani egy vagy másik művelet végrehajtásával, például: dokumentumok feladása vagy adatok letöltése az 1C-be egy webhelyről.

Nemrég tettem közzé egy cikket: itt az ideje automatizálni:

Ütemezett és háttérmunkák

A feladatmechanizmust úgy tervezték, hogy bármely alkalmazást vagy funkciót ütemezett vagy aszinkron módon hajtson végre.

A munkamechanizmus a következő feladatokat hajtja végre:

  • Képes rutin eljárások meghatározására a rendszerkonfiguráció szakaszában;
  • Meghatározott műveletek végrehajtása ütemterv szerint;
  • Egy adott eljárás vagy függvény hívásának végrehajtása aszinkron, azaz. anélkül, hogy megvárná annak befejezését;
  • Egy adott munka előrehaladásának nyomon követése és annak befejezettségi állapotának megállapítása (a végrehajtás sikerességét vagy kudarcát jelző érték);
  • Az aktuális feladatok listájának beszerzése;
  • Képes kivárni egy vagy több feladat elvégzését;
  • Jobkezelés (lemondási lehetőség, végrehajtás letiltása stb.).

A munkamotor a következő alkatrészekből áll:

  • Ütemezett feladatok metaadatai;
  • Ütemezett feladatok;
  • Háttérmunkák;
  • Feladat ütemező.

A háttérfeladatokat és az alkalmazásfeladatok aszinkron futtatására tervezték. A háttérfeladatokat a beépített nyelv segítségével valósítják meg.

Ütemezett feladatok és ütemezett feladatok végrehajtására készültek. Az ütemezett feladatok az információs bázisban tárolódnak, és a konfigurációban meghatározott metaadatok alapján jönnek létre. Az ütemezett feladat metaadatai olyan információkat tartalmaznak, mint a név, a módszer, a használat stb.

Az ütemezett jobok ütemezése meghatározza, hogy az ütemezett jobhoz tartozó metódust mikor kell végrehajtani. Az ütemezés általában az infobázisban van beállítva, de beállítható a konfigurációs szakaszban is (például előre meghatározott ütemezett feladatokhoz).

A feladatütemező az ütemezett feladatok végrehajtásának ütemezésére szolgál. Az ütemező minden ütemezett feladatnál rendszeresen ellenőrzi, hogy az aktuális dátum és idő egyezik-e az ütemezett job ütemezésével. Ha egyezik, az ütemező ütemezi a feladat futtatását. Ehhez ennek az ütemezett feladatnak megfelelően az ütemező létrehoz egy háttérfeladatot, amely elvégzi a tényleges feldolgozást.

A leírással szerintem ennyi elég is – menjünk tovább a megvalósításhoz:

Ütemezett munka létrehozása

A módszer neve– a háttérfeladatban a megadott ütemezés szerint végrehajtandó eljárás elérési útja. Az eljárásnak egy megosztott modulban kell lennie. Javasoljuk, hogy ne használjon tipikus általános modulokat, hanem készítsen sajátot. Ne felejtse el, hogy a háttérben futó feladatok a szerveren futnak!

Használat- ütemezett feladat használatának jele.

előre meghatározott– jelzi, hogy az ütemezett feladat előre meghatározott-e.

Ha azt szeretné, hogy az ütemezett feladat azonnal működjön az adatbázisba helyezés után, adja meg a jelet előre meghatározott. Ellenkező esetben a „Job Console” feldolgozást kell használnia, vagy fel kell hívnia a feladatot a programozott futtatáshoz.

Újrapróbálkozások száma, amikor egy feladat összeomlik– hányszor indult újra a háttérfeladat, ha hibásan futott le.

Feladat megszakítása újrapróbálkozási időköz– milyen gyakran indul újra a háttérfeladat, ha azt hibásan hajtották végre.

Ütemezés beállítása

Menetrend feladat végrehajtása:

Minden órában, csak egy napÚjrapróbálkozási periódusnapok = 0, újrapróbálkozási periódusDuringDay = 3600
Minden nap naponta egyszerRetry PeriodDays = 1, Retry PeriodDuringDay = 0
Egy nap, egyszerÚjrapróbálkozási időszak Napok = 0
Minden második nap naponta egyszerÚjrapróbálkozási időszak napja = 2
Óránként 01:00 és 07:00 között minden napRetryPeriodDays = 1RepeatPeriodDay = 3600Kezdési idő = 01.00

Vége = 07.00

Minden szombaton és vasárnap 09.00 órakorA napok ismétlése = a hét 1 napja = 6, 7Kezdési idő = 09.00
Minden nap egy hét, elmúlik a hétNapok ismétlése = 1 Hetek periódusa = 2
Egyszer 01:00-korKezdési időpont = 01.00
Minden hónap utolsó napja 9:00.Napok ismétlődési periódusa = 1 napHónap = -1Kezdési idő = 09.00
Minden hónap ötödikén 9:00-korNapok ismétlődése = 1 nap Hónapban = 5 Kezdési idő = 09.00
Minden hónap második szerdája 9:00 órakorIsmétlési periódusnapok = 1 nap hét hónapban = 2 nap hét = 3

Kezdési időpont = 09.00

A háttérfeladatok végrehajtásának sajátosságai fájl és kliens-szerver verziókban

A háttérfeladatok végrehajtásának mechanizmusa a fájl és a kliens-szerver verziókban eltérő.

Fájl formátumban létre kell hoznia egy dedikált ügyfélfolyamatot, amely háttérfeladatokat hajt végre. Ehhez az ExecuteJobProcessing globális kontextusfüggvényt rendszeresen meg kell hívni az ügyfélfolyamatban. Infobázisonként csak egy ügyfélfolyamat dolgozhat fel háttérfeladatokat (és ezért hívja meg ezt a függvényt). Ha nem jött létre ügyfélfolyamat a háttérfeladatok feldolgozásához, akkor a jobmotor programozott elérésekor a „Job manager nem aktív” hibaüzenet jelenik meg. Nem ajánlott olyan ügyfélfolyamatot használni, amely más funkciók háttérfeladatait dolgozza fel.

A háttérjobokat feldolgozó ügyfélfolyamat elindítása után a többi ügyfélfolyamat programozottan hozzáférhet a háttérfeladat-mechanizmushoz, pl. háttérmunkákat futtathat és kezelhet.

Kliens-szerver verzióban A háttérfeladatok végrehajtásához a feladatütemezőt használják, amely fizikailag a fürtkezelőben található. Az összes sorban álló háttérfeladat ütemezője a legkevésbé terhelt munkavégző folyamatot kapja, és azt használja a megfelelő háttérfeladat futtatására. A dolgozói folyamat végrehajtja a munkát, és értesíti az ütemezőt a végrehajtás eredményeiről.

A kliens-szerver verzióban lehetőség van az ütemezett feladatok végrehajtásának blokkolására. Az ütemezett feladatok végrehajtásának blokkolása a következő esetekben történik:

  • Az ütemezett feladatok kifejezett blokkolása van beállítva az információs bázison. A zár a fürtkonzolon keresztül állítható be;
  • Kapcsolódási blokk került beállításra az információs bázison. A zár a fürtkonzolon keresztül állítható be;
  • A SetExclusiveMode() metódus a beépített nyelvből lett meghívva a True paraméterrel;
  • Néhány más esetben (például az adatbázis-konfiguráció frissítésekor).

Ütemezett munkák indításának feldolgozása és megtekintése itt tudod letölteni.

Az 1C adatbázisok ütemezett feladatainak kezelése a frissítőből

2018-11-20T15:18:30+00:00

Ebben a megjegyzésben vessünk egy pillantást a frissítő képességeire az ütemezett feladatok adatbázisokban történő kezelésére.

Először is, a "Továbbiak" -> "Ütemezett feladatok kezelése..." menüpontban:

BAN BEN helyi menü dedikált bázis (vagy bázisok csoportja):

És végül a kötegelt szkriptek sablonjaiban (ez lehetővé teszi, hogy ütemezett feladatokat hajtson végre egy parancsfájlból ütemezetten):

Így néz ki az adatbázisokban lévő ütemezett feladatok kezelésére szolgáló párbeszédpanel:

Milyen feladatok megoldását teszi lehetővé kívánt csoport alapok (vagy egy alap)?

Ütemezett feladatok kiválasztása

Ügyeljen arra, hogy az alábbiakban számos műveletnél kiválaszthatja az ütemezett feladatok listáját:

Előfordulhat azonban, hogy a kiválasztási párbeszédpanelen nincsenek ütemezett feladatok kifejezetten az Ön bázisához:

Ebben az esetben a "Saját feladatok..." részben megadhatja a szükséges ütemezett feladatok nevét, például így:

Az ilyen ütemezett feladatok nevei közvetlenül az összes ütemezett feladatról készült jelentésből származnak (leírva).

A feladatok aktuális állapotának megjelenítése

Ehhez lépjen a "Visszavonás" fülre, és nyomja meg a "Vissza..." gombot:

Az eredményekben a következőket láthatjuk:

  1. Új ütemezett feladatok indításának engedélyezése vagy letiltása az 1C szerveren.
  2. Az ütemezett feladatok listája az adatbázisban.
  3. A menetrendjük.
  4. Feladatok engedélyezve vagy letiltva.
  5. Ha a feladat legutóbbi futtatása hibás volt, ez a hiba piros színnel jelenik meg a feladat mellett.

Szükség esetén a szolgáltatás beállításaiban szűkíthetjük az ütemezett feladatok listáját, valamint csak az engedélyezett feladatokat jeleníthetjük meg:

Kapcsolja ki az összes vagy néhány feladatot

Ehhez lépjen a "Kikapcsolás" fülre:

Az összes vagy a kiválasztott ütemezett munka törli a Használat jelölőnégyzet jelölését.

Íme az egyik alap eredménye (kattintson a kibontáshoz)

Tartalmazza az összes vagy néhány feladatot

Ehhez lépjen az "Engedélyezés" fülre:

Az összes vagy a kiválasztott ütemezett munkánál be lesz jelölve a Használat jelölőnégyzet.

Kérjük, vegye figyelembe, hogy ezen a lapon a „Make biztonsági mentés alap" a bal alsó sarokban.

Íme az egyik alap eredménye (kattintson a kibontáshoz)

Mi kezeljük az ütemezett feladatok elindítását az 1C szerveren

Ehhez lépjen a "Server 1C" fülre:

Válassza a "blokkolás" vagy a "blokkolás feloldása" lehetőséget, és kattintson a "Futtatás" gombra.

Feladat ütemezésének összeállítása

De mi van akkor, ha ütemezést kell beállítanunk egy feladat (vagy egy feladatcsoport) elindításához több adatbázisban egyszerre?

Ehhez lépjen az "Ütemezés beállítása" fülre:

Beállítjuk az ütemezést (a párbeszédablak és képességei teljesen megegyeznek a szokásos 1C-vel), és kattintson a "Beállítás ..." gombra.

Feladatok elindítása végrehajtásra

Ehhez lépjen a "Start" fülre:

Válassza ki a kívánt feladatokat, és kattintson a "Start" gombra:

Munkabeállítások mentése külső fájlba

Tegyük fel, hogy ideálisan konfiguráltuk az ütemezett feladatokat az egyik adatbázisban, és át akarjuk vinni ezeket a beállításokat az összes többi adatbázisba.

Ehhez először feltöltjük az ideális adatbázisban található összes feladatbeállítást egy külső fájlba:

Munkabeállítások visszaállítása külső fájlból

Ezután betöltjük ezt a fájlt a feladatbeállításokkal az összes többi adatbázisba:

Csak vegye figyelembe, hogy ehhez a feladathoz (jobbeállítások átvitele egyik adatbázisból a másikba) a feladatnév és nem a belső azonosító szerinti egyeztetés módszerét választottam.

búcsúzó szó

Általában csak ennyit akartam elmondani. Jómagam sok forgatókönyvet látok az új funkciók használatára, de itt csak átfutottam a főbb pontokat.

Valószínűleg minden 1C 8.3 programozónak előbb-utóbb be kellett állítania bizonyos feladatok ütemezett végrehajtását. Lent adok Részletes leírás ezek a mechanizmusok, remélem, az lesz hasznos információ kezdő programozóknak 1C. Ez nagyon kényelmes, mert nem igényel emberi beavatkozást, az ütemezett feladat egyszer van konfigurálva, és az ütemezés szerint működik.

A részletes utasításokat példával alább találja.

Mik az ütemezett és háttérfeladatok az 1C-ben

  • Ütemezett feladatok egy speciális 1C vállalati 8.3-as mechanizmus, amelyet egy adott művelet végrehajtására terveztek egy adott ütemezés szerint.
  • Háttér munka- olyan ütemezett feladat által generált objektumok, amelyek közvetlenül hajtják végre a benne rejlő műveletet a felhasználó vagy a programozó részvétele nélkül 1C 8.2.

Az ütemezett és háttérmunkák mechanizmusa a DBMS funkcionalitásának köszönhetően kliens-szerver üzemmódban (SQL) működik. Ha van fájl adatbázisa, akkor a feladat is konfigurálható, de kissé eltérő módon.

Háttérfeladatok beállítása kliens-szerver üzemmódban 1C

Kezdésként hozzunk létre egy új metaadat objektumot – egy ütemezett feladatot. A feladatomat "Devizaárfolyamok betöltése"-nek nevezem el. Vegye figyelembe a tulajdonságok palettáját ezt a tárgyat konfigurációk:

Ingyenes 267 1C videóleckéket kaphat:

  • A módszer neve— a háttérfeladatban a megadott ütemezés szerint végrehajtandó eljárás elérési útja. Az eljárásnak egy megosztott modulban kell lennie. Javasoljuk, hogy ne szabványosakat használjon, hanem készítsen sajátot. Ne felejtse el, hogy a háttérben futó feladatok a szerveren futnak!
  • Használat- ütemezett feladat használatának jele.
  • előre meghatározott Azt jelzi, hogy az ütemezett feladat előre meghatározott-e. Ha azt szeretné, hogy az ütemezett feladat azonnal működjön az adatbázisba helyezés után, adja meg ezt a jelzőt. Ellenkező esetben a "Job Console" feldolgozást kell használnia, vagy meghívnia kell a feladatot a programozott futtatáshoz.
  • Újrapróbálkozások száma, amikor egy feladat összeomlik— hányszor indult újra a háttérfeladat, ha hibásan futott le.
  • Feladat megszakítása újrapróbálkozási időköz- milyen gyakran indul újra a háttérfeladat, ha hibásan fejeződött be.

És a legérdekesebb beállítás - Menetrend:

Itt állíthatja be a "Módszer neve" mezőben megadott eljárás indításának időtartamát. Hadd állítsam be

Figyelem! Ne felejtse el letiltani az ütemezett és a háttérben futó jobok blokkolását DBMS szinten!

Ezt megteheti a kliens-szerver verzió adminisztrációs segédprogramjában vagy új adatbázis létrehozásakor:

Ütemezett feladatok beállítása fájl üzemmódban 1C

BAN BEN fájl mód az ilyen feladatok felállítása valamivel nehezebb. Egy ilyen feladathoz az 1C program külön munkamenetét kell elindítani. Ezt gyakran a "technikai" felhasználó intézménye oldja meg, akinek a munkamenete mindig fut.

Fájl módban az ütemezett feladat inicializálása az "ExecuteJobProcessing()" metódus elindításakor történik.

Egy adott felhasználó számára beállítható ez a metódus másik metódussal történő futtatására −

ConnectWaitingHandler( <ИмяПроцедуры>, <Интервал>, <Однократно>).

  • Az eljárás neve— a várakozáskezelőként kapcsolt eljárás neve. A felügyelt alkalmazásmodul (normál alkalmazásmodul) vagy globális megosztott modul exportált eljárásának neve. Az eljárást az ügyfélen kell elhelyezni.
  • Intervallum— a műveletek végrehajtása közötti időszak másodpercben.
  • egyszer- hogyan kell elvégezni a feladatot, egyszer vagy nem.

ConnectWaitingHandler, 3600 );

Egy kétperces videó, amely bemutatja, hogyan kell beállítani egy ütemezett feladatot az 1C konfigurátorban:



Betöltés...
Top