Menü
Bedava
giriş
ana  /  TARAFINDAN / Rutin ve arka plan işleri (1Cv8). Planlanan ve arka plan işleri Planlanan iş oluşturun

Rutin ve arka plan işleri (1Cv8). Planlanan ve arka plan işleri Planlanan iş oluşturun

İş Motoru

İş motoru, bazı uygulamaları veya işlevleri bir zamanlamaya göre veya eşzamansız olarak yürütmek için tasarlanmıştır.

Görev mekanizması aşağıdaki görevleri çözer:

  • Sistem konfigürasyonu aşamasında rutin prosedürleri tanımlama yeteneği;
  • Belirtilen eylemlerin programa göre yürütülmesi;
  • Belirli bir prosedüre veya işleve yönelik bir çağrının yürütülmesi eşzamansızdır, yani. tamamlanmasını beklemeden;
  • Belirli bir görevin ilerlemesini izleme ve tamamlanma durumunu (tamamlanmasının başarısını veya başarısızlığını gösteren bir değer) alma;
  • Mevcut görevlerin bir listesini almak;
  • Bir veya daha fazla görevin tamamlanmasını bekleme yeteneği;
  • İş yönetimi (iptal, yürütmenin engellenmesi vb.).

İş motoru aşağıdaki bileşenlerden oluşur:

  • Zamanlanmış görevlerin meta verileri;
  • Rutin görevler;
  • Arka plan işleri;
  • Görev Zamanlayıcısı.

Arka plan işleri, uygulama görevlerini eşzamansız olarak gerçekleştirmek için tasarlanmıştır. Arka plan işleri yerleşik dil kullanılarak gerçekleştirilir.

Zamanlanmış görevler - bir zamanlamaya göre uygulama görevlerini gerçekleştirmek için tasarlanmıştır. Zamanlanmış görevler bilgi tabanında saklanır ve konfigürasyonda tanımlanan meta verilere göre oluşturulur. Planlanmış iş meta verileri ad, yöntem, kullanım vb. Bilgileri içerir.

Planlanmış bir iş, planlanan işle ilişkili yöntemin hangi zaman noktalarında yürütülmesi gerektiğini tanımlayan bir programa sahiptir. Zamanlama, kural olarak bilgi bankasında belirtilir, ancak yapılandırma aşamasında da belirtilebilir (örneğin, önceden tanımlanmış zamanlanmış görevler için).

Görev zamanlayıcı, zamanlanmış görevlerin yürütülmesini zamanlamak için kullanılır. Zamanlanan her görev için, zamanlayıcı, geçerli tarih ve saatin zamanlanan görevin zamanlamasında olup olmadığını düzenli olarak kontrol eder. Eğer öyleyse, programlayıcı yürütülecek böyle bir görevi atar. Bunu yapmak için, bu zamanlanmış görev için, zamanlayıcı gerçek işlemeyi gerçekleştiren bir arka plan görevi oluşturur.

Arka plan işleri

Arka plan işleri, hesaplamanın sonucunun uzun bir süre sonra elde edilebildiği durumlarda, karmaşık hesaplamalar yapmak için kullanışlıdır. İş motoru, bu tür hesaplamaları eşzamansız olarak gerçekleştirecek araçlara sahiptir.

Bir arka plan işi ile ilişkili, arka plan işi çalıştığında çağrılan bir yöntemdir. Arka plan işi yöntemi, sunucuda çağrılabilen herhangi bir genel olmayan ortak modül prosedürü veya işlevi olabilir. Arka plan iş parametreleri, sunucuya geçirilmesine izin verilen herhangi bir değer olabilir. Bir arka plan işinin parametreleri, çağırdığı prosedür veya işlevin parametreleriyle tam olarak eşleşmelidir. Arka plan iş yöntemi bir işlevse, dönüş değeri göz ardı edilir.

Bir arka plan işinin bir anahtarı olabilir - herhangi bir uygulama değeri. Anahtar, arka plan işlerini başlatma konusunda bir kısıtlama getirir - belirli bir anahtar değerine ve belirli bir arka plan işi yöntem adına sahip yalnızca bir arka plan işi, zaman birimi başına yürütülebilir (yöntem adı, modül adı ve prosedür veya işlevin adından oluşur. ). Anahtar, belirli bir uygulama kriterine göre aynı yöntemlere sahip arka plan görevlerini gruplamanıza olanak tanır, böylece bir grup içinde birden fazla arka plan görevi yürütülmez.

Arka plan işleri, herhangi bir bağlantıdan programlı olarak oluşturulur ve yönetilir. Herhangi bir kullanıcının bir arka plan işi oluşturmasına izin verilir. Ayrıca, onu oluşturan kullanıcı adına yürütülür. Yönetici haklarına sahip bir kullanıcının veya bu arka plan görevlerini oluşturan kullanıcının herhangi bir bağlantıdan görevleri almasına ve tamamlanmasını beklemesine izin verilir.

Arka plan işi tamamen bir oturum nesnesidir, ancak herhangi bir kullanıcı oturumuna ait değildir. Her iş için, aramayı yapan kullanıcı adına çalıştırılan özel bir sistem oturumu oluşturulur. Arka plan işlerinin kalıcı durumu yoktur.

Bir arka plan işi, diğer arka plan işlerini ortaya çıkarabilir. İstemci-sunucu sürümünde bu, karmaşık hesaplamaların küme iş akışları arasında paralelleştirilmesine olanak tanır ve bu da bir bütün olarak hesaplama sürecini önemli ölçüde hızlandırabilir. Paralelleştirme, birden çok alt arka plan işinin üretilmesi ve her birinin ana arka plan işinde tamamlanmasının beklenmesi yoluyla yapılır.

Başarıyla veya anormal şekilde tamamlanan arka plan işleri 24 saat saklanır ve ardından silinir. Yürütülen arka plan işlerinin sayısı 1000'i aşarsa, en eski arka plan işleri de silinir.

Planlanmış görevler

Planlanmış görevler, belirli periyodik veya tek seferlik eylemlerin bir programa göre gerçekleştirilmesi gerektiğinde kullanılır.

Planlanan işler bilgi tabanında depolanır ve yapılandırmada tanımlanan planlanmış iş meta verilerine göre oluşturulur. Meta veriler, zamanlanmış bir görevin şu parametrelerini ayarlar: yöntem, ad, anahtar, kullanma yeteneği, önceden tanımlanmış bayrak, vb. Zamanlanmış bir görev oluştururken, ek olarak bir zamanlama (meta verilerde belirtilebilir), değerler yöntem parametreleri, kimin adına zamanlanmış bir görevi gerçekleştirmesi gereken kullanıcı adı vb.

Planlanan işlerin oluşturulması ve yönetilmesi, herhangi bir bağlantıdan programlı olarak gerçekleştirilir ve yalnızca yönetici haklarına sahip kullanıcılara izin verilir.

Not. Dosya modunda çalışırken, görev zamanlayıcıyı başlatmadan zamanlanmış görevler oluşturmak ve düzenlemek mümkündür.

Zamanlanmış bir iş, programlanan iş yürütüldüğünde çağrılan bir yöntemle ilişkilendirilir. Sunucuda çağrılabilen global olmayan ortak bir modülün herhangi bir prosedürü veya işlevi, planlanmış bir iş yöntemi olarak hareket edebilir. Zamanlanmış bir işin parametreleri, sunucuya gönderilmesine izin verilen herhangi bir değer olabilir. Planlanan işin parametreleri, çağırdığı prosedür veya işlevin parametreleriyle tam olarak eşleşmelidir. Planlanan iş yöntemi bir işlevse, dönüş değeri göz ardı edilir.

Zamanlanmış görevin bir anahtarı olabilir - uygulanan herhangi bir değer. Anahtar, planlanan işlerin başlatılmasına bir kısıtlama getirir, çünkü zaman birimi başına, aynı meta veri nesnesiyle ilişkili zamanlanmış işler arasında, belirli bir anahtar değerine sahip yalnızca bir zamanlanmış iş yürütülebilir. Anahtar, aynı meta veri nesnesiyle ilişkilendirilmiş zamanlanmış görevleri belirli bir uygulama kriterine göre gruplamanıza olanak tanır, böylece bir grup içinde birden fazla zamanlanmış görev gerçekleştirilmez.

Konfigürasyon sırasında önceden tanımlanmış planlanmış işleri tanımlayabilirsiniz. Önceden tanımlanmış zamanlanmış işler, açıkça oluşturulamaz veya silinemezler dışında, normal zamanlanmış işlerden farklı değildir. Planlanan işin meta verileri ayarlanmışsa önceden tanımlanmış bir zamanlanmış görevin işareti, daha sonra yapılandırma bilgi tabanında güncellendiğinde, önceden tanımlanmış bir zamanlanmış görev otomatik olarak oluşturulacaktır. Önceden tanımlanmış bayrak kaldırılırsa, bilgi tabanında yapılandırma güncellendiğinde, önceden tanımlanmış zamanlanmış görev otomatik olarak silinecektir. Önceden tanımlanmış bir zamanlanmış işin özelliklerinin başlangıç \u200b\u200bdeğerleri (örneğin, bir çizelge) meta verilerde ayarlanır. Daha sonra uygulama çalışırken değiştirilebilirler. Önceden tanımlanmış zamanlanmış işlerin hiçbir parametresi yoktur.

Planlanan iş programı, planlanan işin hangi saatlerde başlatılması gerektiğini belirler. Zamanlama şunları ayarlamanıza olanak tanır: görev yürütmenin başlangıç \u200b\u200bve bitiş tarihi ve saati, yürütme süresi, planlanan görevin gerçekleştirilmesi gereken hafta ve aylar, vb. dilde).

Zamanlanmış görev programlarına örnekler:

Her saat, sadece bir gün

RepeatDays Periyodu \u003d 0, RepeatPeriodDuring a Day \u003d 3600

Her gün, günde bir kez

RepeatDays Periyodu \u003d 1, RepeatPeriodDuring a Day \u003d 0

Bir gün, bir kez

RepeatDays Periyodu \u003d 0

Her gün, günde bir

Tekrarlama PeriyoduDays \u003d 2

Her gün 01.00 - 07.00 arası her saat

Tekrarlama PeriyoduDays \u003d 1

Repeat PeriodOverDay \u003d 3600

Başlangıç \u200b\u200bSaati \u003d 01.00

Bitiş Saati \u003d 07.00

Her cumartesi ve pazar saat 09.00'da

Tekrarlama PeriyoduDays \u003d 1

Gün Hafta \u003d 6, 7

Başlangıç \u200b\u200bSaati \u003d 09.00

Her gün bir hafta, hafta geçiş

Tekrarlama PeriyoduDays \u003d 1

DönemHafta \u003d 2

01.00'da bir kez

Başlangıç \u200b\u200bSaati \u003d 01.00

Her ayın son günü saat 9:00 'dır.

Tekrarlama PeriyoduDays \u003d 1

DayInMonth \u003d -1

Başlangıç \u200b\u200bSaati \u003d 09.00

Her ayın beşi saat 9: 00'da

Tekrarlama PeriyoduDays \u003d 1

GünAy \u003d 5

Başlangıç \u200b\u200bSaati \u003d 09.00

Her ayın ikinci çarşambası saat 9: 00'da

Tekrarlama PeriyoduDays \u003d 1

Ay İçi Haftanın Günü \u003d 2

DaysWeeks \u003d 3

Başlangıç \u200b\u200bSaati \u003d 09.00

Bir işin belirli bir tarihte çalışıp çalışmadığını kontrol edebilirsiniz (JobSchedule nesnesinin Yürütme Gerekli yöntemi). Planlanan işler her zaman belirli bir kullanıcının adı altında gerçekleştirilir. Planlanan işin kullanıcısı belirtilmezse, yürütme, yönetici haklarına sahip varsayılan kullanıcı adına gerçekleştirilir.

Planlanan işler, arka plan işleri kullanılarak yürütülür. Planlayıcı, planlanan bir işin başlatılması gerektiğini belirlediğinde, tüm diğer işlemleri gerçekleştiren bu planlanmış işe göre otomatik olarak bir arka plan işi oluşturulur. Bu zamanlanmış görev zaten çalışıyorsa, programına bakılmaksızın yeniden başlatılmaz.

Planlanan işler yeniden başlatma özelliğine sahiptir. Bu, özellikle zamanlanmış görev yönteminin yerine getirilmesinin garanti edilmesi gerektiğinde geçerlidir. Zamanlanmış bir iş, anormal bir şekilde sonlandırıldığında veya programlanmış işin yürütüldüğü alt işlem (istemci-sunucu sürümünde) veya istemci işlemi (dosya sürümünde) anormal bir şekilde sonlandırıldığında yeniden başlatılır. Zamanlanmış bir işte, kaç kez yeniden başlatılması gerektiğini ve yeniden başlatmalar arasındaki aralığı belirtebilirsiniz. Yeniden başlatılan zamanlanmış bir işin yöntemini uygularken, yeniden başlatıldığında, yürütülmesinin en baştan başlayacağı ve anormal sonlandırma anından itibaren devam etmeyeceği dikkate alınmalıdır.

Bunu hatırlamak önemlidir Bitiş zamanı artalan işi belirtilen zamanda mutlaka bitmeyecektir. Bazı ifadeler:

* Bir arka plan işi, kilitlenmezse otomatik iptalini yok sayabilir, ancak tüm platform işlemlerinin iptal edilememesi nedeniyle çalışmaya devam eder. Katıştırılmış dilin döngüsel kodu yürütülürse, iş iptal edilebilir, aksi takdirde iptal edilemez. Her şey görevin ne yaptığına bağlı. * Bitiş zamanı - bir işin başlayıp bitememe sınırı? * İşin zorunlu sonu, işlemin başladığı ana kadar yapılan değişiklikleri geri alır mı?

Dosya ve istemci-sunucu sürümlerinde arka plan işlerini yürütmenin özellikleri

Dosya ve istemci-sunucu sürümlerinde arka plan işlerini yürütme mekanizmaları farklıdır.

  • Dosya sürümünde, arka plan işlerini gerçekleştirecek özel bir istemci işlemi oluşturmanız gerekir. Bunu yapmak için, istemci işleminin düzenli olarak RunProcessingJob genel bağlam işlevini çağırması gerekir. Bilgi bankası başına yalnızca bir istemci işlemi arka plan işlerini işlemelidir (ve bu nedenle bu işlevi çağırır). Arka plan işlerini işlemek için istemci süreci oluşturulmazsa, iş motoruna programlı olarak erişilirken "İş yöneticisi etkin değil" hatası görüntülenir. Arka plan işlerini işleyen istemci işleminin diğer işlevler için kullanılması önerilmez.

Arka planda iş işlemeyi gerçekleştiren istemci süreci başladıktan sonra, istemci işlemlerinin geri kalanı programlı olarak arka plan iş motoruna erişebilir, örn. arka plan işlerini çalıştırabilir ve yönetebilir.

İstemci-sunucu sürümünde, arka plan görevleri fiziksel olarak küme yöneticisinde bulunan görev zamanlayıcı kullanılarak yürütülür. Kuyruğa alınan tüm arka plan işleri için zamanlayıcı, en az meşgul olan iş akışını alır ve ilgili arka plan işini yürütmek için bunu kullanır. Çalışan süreç işi çalıştırır ve planlayıcıya yürütmenin sonuçlarını bildirir.

İstemci-sunucu sürümünde, zamanlanmış görevlerin yürütülmesini engellemek mümkündür. Zamanlanmış görevlerin yürütülmesini engellemek aşağıdaki durumlarda gerçekleşir:

  • Bilgi bankasına planlanmış işlerin açık bir şekilde engellenmesi yüklenir. Kilit, küme konsolu aracılığıyla ayarlanabilir;
  • Bilgi tabanına bir bağlantı engelleme kurulur. Kilit, küme konsolu aracılığıyla ayarlanabilir;
  • SetExclusiveMode () yöntemi, True parametresiyle gömülü dilden çağrıldı;
  • Diğer bazı durumlarda (örneğin, veritabanı yapılandırmasını güncellerken).

Planlanmış iş meta verilerinin oluşturulması

Bilgi tabanında programlı olarak zamanlanmış bir görev oluşturmadan önce, bunun için bir meta veri nesnesi oluşturmanız gerekir.

"Zamanlanmış görevler" dalının "Genel" dalındaki yapılandırma ağacında bir rutin görev meta veri nesnesi oluşturmak için, Ekle komutunu çalıştırın ve özellikler paletinde aşağıdaki rutin görev özelliklerini doldurun:

Yöntem adı - planlanan iş yönteminin adını belirtir.

Anahtar - planlanan iş için anahtar olarak kullanılacak rastgele bir dize değeri belirtilir.

Takvim - programlanan görevin takvimi gösterilir. Bir çizelge oluşturmak için, "Aç" bağlantısını tıklayın ve açılan çizelge formunda gerekli değerleri ayarlayın.

Genel sekmesi, görev ve tekrar modu için başlangıç \u200b\u200bve bitiş tarihlerini içerir.

"Gün" sekmesinde, görevin günlük programı belirtilir.

Programı belirtin:

  • görevin başlangıç \u200b\u200bve bitiş zamanı;
  • görevin tamamlanma süresi, ardından zorla tamamlanacak;
  • görevin tekrar süresi;
  • tekrarlar arasındaki duraklamanın uzunluğu;
  • yürütme süresi.

Koşulların keyfi bir kombinasyonuna izin verilir.

Görevin haftalık programı "Haftalık" sekmesinde belirtilir.

Görevin yürütüleceği haftanın günleri için kutuları işaretleyin. İşi tekrarlamak istiyorsanız, hafta cinsinden tekrar aralığını belirtin. Örneğin, görev 2 hafta sonra yürütülür, yeniden deneme değeri 2'dir.

"Aylık" sekmesinde, görevin aylık planı belirtilir.

Görevin çalışacağı aylar için kutuları işaretleyin. Gerekirse, ayın / haftanın başlangıcından veya sonundan belirli bir yürütme gününü (ay veya hafta) belirtebilirsiniz.

Kullanım - ayarlanmışsa, görev programa göre yürütülecektir.

Önceden tanımlanmış - ayarlanmışsa, görev önceden tanımlanmış bir görevdir.

Kilitlenme Yeniden Denemeleri - Olağandışı sonlandırma durumunda yeniden deneme sayısını belirtir.

Kilitlenme yeniden deneme aralığı - Olağandışı yeniden deneme aralığını belirtir. Örnekleri

"Tam Metin Arama Dizinini Yenile" arka plan işi oluşturmak için:

BackgroundJobs.Run ("Tam Metin Arama Dizininin Güncellenmesi");

Planlanmış bir görevin oluşturulması "Sıraları geri yükleme":

Plan \u003d Planlanmış İşin Yeni Programı; Schedule.Repat PeriodDays \u003d 1; Schedule.RepeatPeriodIn içinde Gün \u003d 0;

Görev \u003d Planlanmış İşler Planlanmış İş Oluşturma ("Sıra Kurtarma"); Task.Schedule \u003d Zamanlama; Task.Write ();

Görev Konsolu

ITS ile işleme, rutin görevleri yönetir:

Planlanmış işlerle çalışma

Görevlerin nesneleri

İş nesneleri referans değildir, ancak veritabanında bir tür özel depoda saklanır.

Meta verilerde "Önceden tanımlı" bayrağı etkinleştirilmişse, bu tür bir nesne 1C: Enterprise'ı başlattığınızda otomatik olarak oluşturulur ve her zaman tam olarak bir durumda bulunur. Böyle bir nesne silinemez.

"Önceden tanımlı" bayrağı ayarlanmamışsa, bu tür bir görevin nesneleri, zamanlamayı ve parametreleri göstererek programlı olarak oluşturulur ve silinir.

Görev listesi alma

Yöntem kullanılarak görev listesi elde edilebilir Düzenli Ödevler Alın küresel iş yöneticisi Düzenleyici Görevler

ScheduledJobsManager

Planlanmış İşler

Sözdizimi:

Düzenli İşler Alın (<Отбор>)

Seçenekler:

<Отбор> (isteğe bağlı)

Tür: Yapı. Seçim yapısı. Yapı değerleri şunlar olabilir: UniqueIdentifier, Key, Metadata, Predefined, Usage, Name. Seçim belirtilmezse, tüm zamanlanmış görevler alınır.

Meta verilere göre filtreleme yapıyorsanız, rutin iş meta veri nesnesini veya adını Metadata değeri olarak belirtebilirsiniz.

Döndürülen değer:

Tür: Dizi.

Açıklama:

Belirli bir seçim için bir zamanlanmış görev dizisi alır. Zamanlanmış görevlerin alınması yalnızca yönetici için mümkündür.

Kullanılabilirlik:

Rutin \u003d Rutin İşler. Rutin İşler Al (Seçim);

Planlanmış Döngüden Planlanan Her Döngü İçin NewRow \u003d Planlanmış İşlerin Listesi.Add (); NewString.Metadata \u003d Regular.Metadata.Representation (); NewString.Description \u003d Regulatory.Name; NewLine.Key \u003d Regular.Key; NewLine.Schedule \u003d Regular.Schedule; NewString.User \u003d Normal.Username; NewString.Predefined \u003d Regular.Predefined; NewString Use \u003d Regular Use; NewString.Identifier \u003d Regulatory.UniqueIdentifier;

LastJob \u003d Scheduled.LastJob; Son Görev<> Tanımsız Sonra NewRow.Run \u003d LastJob.Start; NewString.Status \u003d LastJob.Status; EndIf; Döngü Sonu;

Yaratık

Planlanan işler yöneticisinin CreateRegularTask yöntemi tarafından oluşturulur:

ScheduledJob \u003d ScheduledJobs.CreateRegularJob (MetadataSelection);

Regulatory Task.Name \u003d Ad; Düzenli Task.Key \u003d Anahtar; RegularTask Use \u003d Kullanım; ScheduledJob.UserName \u003d Kullanıcı Seçimi; Planlanmış İş.Acil Sonlandırmada Tekrar Sayısı \u003d Acil Durum Sonlandırması Üzerine Tekrar Sayısı; Anormal Sonlandırmada ScheduledJob.Repeat Interval \u003d Anormal Sonlandırmada Yeniden Deneme Aralığı; ScheduledJob.Schedule \u003d Planlama; RegularJob.Write ();

JobObject \u003d ScheduledJobs.CreateRegularJobs ("ExecuteExchange");

JobObject.Name \u003d Ad; JobObject.Usage \u003d Doğru;

Görev nesnesi, yöntem parametrelerinin ayarlandığı "Parametreler" alanına sahiptir:

Zamanlanmış İş

Seçenekler (Parametreler)

Kullanarak:

Okuma ve yazma.

Açıklama:

Tür: Dizi. Planlanan işin parametre dizisi. Parametrelerin sayısı ve bileşimi, rutin görev yönteminin parametrelerine karşılık gelmelidir.

Kullanılabilirlik:

Sunucu, Fat İstemci, Dış Bağlantı.

Not:

Okuma ve yazma yetenekleri yalnızca yönetici tarafından kullanılabilir.

Siliniyor

Görev nesnesinin Delete () yöntemi ile silinir:

ScheduledTask.Remove ();

İş nesnesini almak

  • getRegularJobs yöntemi aracılığıyla listeleyin:

Rutin \u003d Rutin İşler. Rutin İşler Al (Seçim);

  • görev yöneticisinin FindByUniqueIdentifier yöntemi aracılığıyla:

Görev \u003d Zamanlanmış Görevler.FindBy Benzersiz Tanımlayıcı (UID);

Belge akışı ve muhasebedeki bazı görevlerin periyodik olarak gerçekleştirilmesi gerekebilir. Örneğin, yirmilerde. Veya günlük.

Genellikle, şirket bu tür görevlerin uygulanması için kurallar oluşturmaya çalışır - görevi kimin, ne zaman ve nasıl tamamlaması gerektiği, kimin kontrol etmesi gerektiği.

Bu tür görevler denir - düzenlenir, yani düzenlemelere uygun olarak gerçekleştirilir.

BT'de izleme genellikle düzenli bir şekilde yapılır.

Bu, sistem yöneticisi tarafından iyi bilinir - sunucuların ve ağ altyapısının çalışabilirliğini periyodik olarak kontrol eden ve yöneticiyi SMS veya e-posta ile bilgilendiren özel programlar vardır.

Web yöneticileri için de benzer şeyler mevcuttur - gün boyunca sitenin kullanılabilirliğini kontrol etmek için.

1C'de, izleme görevleri ve bir programa göre otomatik olarak gerçekleştirilmesi gereken diğer periyodik görevler, 1C Zamanlanmış Görevler mekanizması kullanılarak gerçekleştirilir.

Bugün onlar hakkında konuşalım.

Zamanlanmış görevler 1C

Zamanlanmış görevler 1C, olduğu gibi, ancak bir programa göre gerçekleştirmenize izin veren bir görevdir.

Yapılandırıcıdaki planlanmış 1C görevinin kendisi, ayarları belirtmenin ve bir program ayarlamanın bir yoludur. Bu arada, program daha sonra 1C Enterprise modunda dinamik olarak değiştirilebilir.

Arka plan görevleri, 1C dilinde program metninden, programlanmış bir 1C görevi olmaksızın rastgele oluşturulabilir - sunucuda paralel hesaplama için.

Zamanlanmış 1C görevlerinin yürütülmesi geçici olarak devre dışı bırakılabilir - içinde.

Zamanlanmış bir görev ekleme 1C

Zamanlanmış görevler 1C, Genel / Zamanlanmış görevler 1C dalındaki konfigürasyondadır. Yeni bir 1C zamanlanmış görev ekleyelim, adını gösterelim.

Planlanan işin özelliğinde 1C Yöntem adı - yanı sıra belirtilir. İşlev, özelliklerde Sunucu onay kutusu işaretlenmiş olarak genel modülde yer alacaktır, yani modül önceden eklenmelidir.

Planlanan işin özelliği 1C - İş adı - işin iş yönetimi araçlarında görüneceği adı tanımlar.

1C zamanlanmış görev özelliği - Anahtar - birkaç farklı 1C zamanlanmış görevi gruplamanıza olanak tanır. Bir seferde aynı anahtar değerine sahip yalnızca bir iş başlatılabilir. Değerin kendisi keyfi olabilir. Kontrol sırasında boş bir değer dikkate alınmaz (yani doldurulmamış kabul edilir).

Zamanlanmış 1C görevinin özelliği - Önceden tanımlanmış - 1C Enterprise başlatıldığında böyle bir görevin yapılandırıcıda belirtilen zamanlamaya göre tek bir kopya halinde oluşturulacağını belirler. Tanımlanmamış görevler, zamanlama sırasında programlı olarak görünür.

Tipik konfigürasyonlarda, örneğin Muhasebe Sürümü 2.0, Yapılandırma güncellemesi ve Toplamların yeniden hesaplanması gibi planlanmış 1C görevleri önceden tanımlanmıştır ve Veri değişimi veya Ertelenen hareketler gibi önceden tanımlanmamıştır.

Kullanım - görevi etkinleştirir (yani, yalnızca Kullanım onay kutusu işaretlendiğinde yürütülür).

Anormal sonlandırmayı yeniden deneyin - kolayca tahmin edebileceğiniz gibi, ilk seferde başarılı bir şekilde yürütülemediyse görevi yeniden başlatmak anlamına gelir - bu, anormal sonlandırmadan kaç kez ve kaç kez yeniden başlatılacağını belirtir.

1C planlı iş yönetimi ve izleme

Planlanmış 1C işlerini yönetmek için, özel bir standart işleme İş Konsolu vardır. Dahil bulunabilir.

Bu işlem, genellikle konfigürasyona dahil edilmeyen, ancak örneğin ITS disklerinde ayrı olarak dağıtılan, evrensel harici standart işleme 1C'yi ifade eder.

İş konsolu işlemeyi kullanarak şunları yapabilirsiniz:

  • Zamanlanmış görev 1C'nin yürütülmesini etkinleştirin / devre dışı bırakın
  • Zamanlanmış 1C görevlerinin (ve diğer parametrelerin) zamanlamasını atayın / değiştirin
  • Zamanlanmış 1C görevinin adına gerçekleştirileceği 1C kullanıcısını belirtin
  • Bakın - hangi görevler ne zaman ve hangi sonuçla tamamlandı, 1C görevlerinde hatalar
  • Bir görev gerçekleştirin.

Veritabanlarının ve zamanlanmış görevlerin kopyaları 1C

Sunucu 1C kullanılırsa, aşağıdaki durum gerçekleşir:

  • Kendi amaçları için (örneğin, programlama için), çalışma tabanının bir kopyası yapılır.
  • Veritabanının kopyası çalışılıyor, test ediliyor vb.
  • Böyle bir test üssünde planlanmış 1C görevlerini kapatmayı unutmak.

Zamanlanmış 1C görevleri yalnızca bilgi tabanlarıyla ilgili görevleri yerine getirirken, bunda hiçbir şey yoktur.

Bununla birlikte, 1C rutin görevleri genellikle herhangi bir dosyayı, veriyi diğer veritabanlarına kaydedebilir, değiş tokuş edebilir, e-posta gönderebilir.

Bu durumda, çalışma tabanında rutin 1C görevlerini yerine getirmenin sonucu ile kopyalar arasında ilginç bir karışım ortaya çıkabilir.

Çalışma tabanının kopyaları için rutin 1C görevleri devre dışı bırakılmalıdır.

Rutin görevlerin yerine getirilmesi ve yerine getirilmemesi 1C

Zamanlanmış 1C görevleri oluştururken şunları hatırlamanız gerekir:

  • Görevler kendileri tarafından gerçekleştirilir - izlenmeleri gerekir
  • Görevler sunucudaki bir modülde gerçekleştirilir
  • Görevler, farklı haklar altında farklı bir Windows kullanıcısı altında yürütülür.

Öncelikle, görevin gerçekleştirildiğini ve zamanlanmış 1C görevi olarak gerçekleştirilebileceğini kontrol etmeniz gerekir.

İkinci olarak, sunucu modülü, istemcide bulunan birçok şeyin mevcut olmadığı anlamına gelir. Örneğin, bazen tüm belgeler yalnızca sunucuda gönderilemez, çünkü bunların algoritmaları, davranışın kullanıcı tarafından manuel olarak başlatılmasını sağlayabilir ve örneğin sunucu dışı işlevler kullanılabilir.
Uyarı ("Merhaba!")

Üçüncüsü, görev 1C veri tabanının dışındaki bir şeyle ilgilenirse, görevin altında yürütüldüğü Windows kullanıcısının hakları önemli hale gelir.

Üçüncü nokta, özellikle geliştirme sırasında önemlidir. Modül sunucu üzerinde yürütülemezse, görev prensip olarak yerine getirilmeyecektir. Kontrol etmek için, görevi en az bir kez çalıştırmanız ve Görev Konsolu işleminde "Görev tamamlandı" sonucunu görmeniz gerekir.

Mevcut bölümde, küme ayarına ilişkin ana alıntılar ayrılmıştır. Doğal olarak, hepsi her platformun konfigürasyonunun inceliğine bağlı olduğu için tam değildirler. Ama yine de aceleyle aramak istemiyorsun, ama nerede aradım ya da bir zamanlar nasıl yaptım?

  • Yük devretme kümesi
  • Sunucu kümesi ölçeklenebilirliği

  • İşlevsellik atama gereksinimleri

Yük devretme kümesi

2.1.7. Küme yükü dengeleme

2.1.7.1. Uygun fiyatlı iş akışı performansı

Her iş akışının bir özelliği vardır Uygun fiyatlı performans... Belirli bir çalışan işlemin, diğer çalışan işlemlere kıyasla bir referans sunucu çağrısını ne kadar hızlı tamamlayabileceğini belirler. Referans çağrısı aşağıdaki işlemleri içerir:

● Bellek ile işlem: dizi ayırma, dizi doldurma, dizi boşaltma.

● Dosyalarla işlem: oluşturun, kaydedin, silin.

● Alt işlemin çalıştığı bilgisayardaki işlemci yükünün derecesinin ve yürütülmeyi bekleyen iş parçacığı sayısının belirlenmesi. Bu değer, referans arama yürütme süresini yukarı doğru ayarlar. Sunucunun adına çalıştığı kullanıcı grubun üyesi değilse Performans günlüğü kullanıcıları (Performans Günlüğü Kullanıcıları), işlemci yükü belirlenmez.

Mülk değeri Uygun fiyatlı performans 10.000'i referans çağrısını tamamlamak için geçen ortalama (5 dakikadan fazla) süreye mevcut iş akışına bölerek hesaplanır. Kümede birden fazla üretim sunucusu varsa referans çağrısı 2 saniyede bir yapılır. Sunucu kümesi tek bir çalışan sunucudan oluşuyorsa, tüm çalışan işlemler eşit kabul edilir.

İstemciler, tüm çalışan süreçlerinin mevcut performansını yaklaşık olarak eşit hale getirecek şekilde çalışan süreçler arasında dağıtılır. Mevcut üretkenlikteki% 25'ten fazla fark önemli kabul edilir.

İş akışlarının mevcut performansı arasındaki oran değiştiğinde, istemciler 10 dakikadan fazla olmamak üzere iş akışları arasında dinamik olarak yeniden dağıtılır.

Bir iş akışı devre dışı bırakıldığında, istemcileri, kalan etkinleştirilmiş iş akışları arasında dinamik olarak yeniden dağıtılır.

2.1.7.3. İşlevsellik atama gereksinimleri

2.1.7.3.1. Genel bilgi

Bir sunucu kümesi bir dizi işlev sağlar ( gereksinimler nesneleri), küme içindeki üretim sunucuları arasındaki dağıtımı kontrol edilebilir. Örneğin, kümedeki tüm arka plan işlerinin seçili üretim sunucusunda çalışacağını belirtebilirsiniz.

Çalışan bir sunucuya bir bağlantı veya küme hizmeti yerleştirmek için, seçilen çalışan sunucuya işlevsellik atamak için bir istek oluşturmak gerekir. Bu gereksinim, belirli bir sunucunun belirli bir işi gerçekleştirme yeteneğini veya yetersizliğini belirler. İşlevsellik atama gerekliliğinin ne olduğunu daha ayrıntılı olarak ele alalım.

İşlevsellik atama gereksinimi şunları belirler:

● Hangi istek nesnesi için gereksinim yaratılır. Bazı küme hizmetleri (bkz.), İstemci bağlantıları (bkz.) Ve rastgele bir istek nesnesi, bir istek nesnesi olarak işlev görebilir. Aşağıdaki küme hizmetleri bir gereksinim nesnesi olarak hareket edebilir:

● Nesne kilitleri.

● Zaman.

● Günlükler.

● Ödevler.

● Numaralandırma.

● Tam metin araması.

● Özel ayarlar.

● Oturum verileri.

● İşlem kilitleri.

● ODBC aracılığıyla harici veri kaynaklarıyla çalışma.

● XMLA aracılığıyla harici veri kaynaklarıyla çalışma.

● Lisanslama hizmeti.

● Veritabanı yapılandırmasının arka planda güncellenmesi hizmeti.

● Test hizmeti.

● Harici oturum yönetimi hizmeti.

● Gereksinim türünü tanımlar. Gereksinim türü, üretim sunucusunun nasıl kullanılacağını belirler:

● Atama - bu isteğin kendisi için oluşturulduğu çalışan sunucunun, istekte belirtilen koşullarla eşleşen istek nesnesine hizmet etmek için atanmayacağı anlamına gelir.

● Ata - bu isteğin kendisi için oluşturulduğu çalışan sunucunun bu istek nesnesine hizmet vermek için adaylardan biri olacağı anlamına gelir (birkaç çalışan sunucu varsa).

● Otomatik - çalışan sunucunun, onu kullanma ihtiyacını açıkça belirten çalışan bir sunucu yoksa, istek nesnesine hizmet etmek için kullanılabileceği anlamına gelir.

TAVSİYE. Üretim sunucusunun gereksinimler listesinde daha geniş bir koşul kümesine sahip bir gereksinim olduğunda ve daha dar bir koşul kümesine gereksinim duyduğunuzda Otomatik gereksinim türünü kullanmak mantıklıdır. Örneğin, belirli bir sunucu, böyle bir hizmete izin verilen bir bilgi tabanı dışında, tüm bilgi tabanları için istemci uygulamalarının bağlantılarına hizmet veremez.

● Bazı durumlarda karar vermek için sunucu kümesinin gerektirdiği ek parametreler:

● Bilgi bankasının adı. İstemci bağlantıları ve lisanslama hizmeti dışında gereksinimin nesnesi olarak hareket edebilecek tüm küme hizmetleri için gereksinimlerin oluşturulması gerekliliğini açıklığa kavuşturmak için kullanılır.

● Ek seçenekler. Bir istemci bağlantısı veya oturum veri hizmeti barındırırken gereksinimleri açıklığa kavuşturmak için kullanılır. Ek parametre, istek nesnesinin karşılık gelen parametresinin başlangıcıyla çakışması için kontrol edilir. Ek parametre aşağıdaki değerlerden birini alabilir:

● Belirli bir arka plan işi belirtmek için: BackgroundJob.CommonModule. <Имя модуля>.<Имя метода> ;

● Tüm arka plan işlerini belirtmek için: BackgroundJob.CommonModule;

● Tüm raporları belirtmek için: BackgroundJob.Report. Bir rapor adı belirtilmesi desteklenmez;

● Dize ile giriş yapın veya bir listede arayın: BackgroundJob.SystemBackgroundJob;

● Bir arka plan yeniden yapılandırması belirlemek için: SystemBackgroundJob;

● İstemci uygulaması için:

● 1CV8 - kalın müşteri;

● 1CV8CDirect - 1C: Enterprise sunucusuna doğrudan bağlantı durumunda ince istemci;

● Tasarımcı - yapılandırıcı;

● COMConnection - COM bağlantısı;

● WebServerExtension - bir web sunucusu aracılığıyla bilgi tabanına bağlantı: web istemcisi, bir web sunucusu aracılığıyla bağlanmışsa ince istemci, Web hizmeti.

İstekleri işlerken bir sunucu kümesinin nasıl çalıştığına bir göz atalım.

Bir istek nesnesi yerleştirmek gerekirse, küme aşağıdaki eylemleri gerçekleştirir:

● Kümedeki tüm sunucular, bu sunucular için işlevsellik atama gereksinimlerini işliyor. Sunucular ve istekler, küme konsolunda bu nesnelerin sırasına göre atlanır.

● Her gereksinim listesi, yerleştirilen nesneyi karşılayan ilk gereksinimi tanımlar: nesnenin kendisi, bilgi tabanı ve ek bir parametre için.

● Ortaya çıkan üretim sunucuları listesi daha sonra istek türüne göre sıralanır, böylece üretim sunucuları ilk önce açık bir kullanım göstergesiyle görünür. Eşleştirme gereksiniminin açık bir kullanım reddi içerdiği üretim sunucuları, mevcut üretim sunucuları listesinin dışında tutulur. Bu durumda, görev aşağıdaki şekilde gerçekleştirilir:

● Açık kullanım göstergesine sahip üretim sunucuları vardır: bu durumda, istek nesnesine bu üretim sunucularından biri tarafından hizmet verilecektir.

● Açık kullanım göstergesi olan üretim sunucuları yok: Otomatik kullanım göstergeli üretim sunucuları veya gereksinimleri belirtilmemiş üretim sunucuları kullanılmaya çalışılır.

● Bir istemci bağlantısı kurarken, mevcut sunucular listesinden, mevcut en yüksek performansa sahip iş akışını içeren bağlantı seçilir (bkz.). Belirli bir çalışan sunucudaki bir iş akışını seçme kurallarının ayrıntılı açıklaması için, bakınız.

İstek nesnesinin dağıtımını başlatan istemci uygulaması, aşağıdaki durumlardan birinde çökecektir:

● İstek nesnesi için çalışan sunucuların listesi boş çıkarsa, nesneye hizmet edebilecek tek bir çalışan sunucu yoktur. Bu durumda, istek nesnesi yerleştirilmeyecek ve bir istisna atılacaktır.

● Seçilen üretim sunucusundaki yerleşim tamamlanamıyorsa, örneğin, seçilen sunucu çalışmıyorsa ve alternatif üretim sunucuları yoksa.

2.1.7.3.2. Gereksinim Nesnelerini Atama

Küme hizmetine hizmet vermek için çalışan bir sunucu atamak için algoritmaya daha yakından bakalım.

● Hizmet bilgi tabanlarına bölünmemişse aynı tür hizmet.

● Hizmet bilgi tabanlarına bölünmüşse, bir bilgi bankası için aynı tür hizmet.

● Oturum verileri hizmeti.

● Lisanslama hizmeti.

Hizmetler, uygun üretim sunucuları arasında aşağıdaki şekilde dağıtılır:

● Atama için seçilen çalışan sunucular listesinden, şu anda çalışır durumda olanlar seçilir. Kalan çalışan sunucular arasında, Priority özelliğinin maksimum değeri içerdiği sunucular seçilir.

● Hizmetler, seçilen çalışan sunucular arasında eşit olarak dağıtılır.

● Çoğaltmayı destekleyen hizmetler, birden çok üretim sunucusuna atanabilir. Kullanılan çalışan sunucuların sayısı, küme yük devretme düzeyi artı bire eşittir (bkz.). Bu durumda, bir hizmet etkin olacak ve hizmet verilerinin kopyalanması diğer hizmetlerle desteklenecektir (yedekleme). Çoğaltma eşzamansız olarak gerçekleştirilir. Senkronizasyon her saniye gerçekleşir.

● Sunucu kümesinin sunduğu her oturum için bir oturum veri hizmeti örneği oluşturulur. Belirli bir hizmet örneğine hizmet edebilecek çalışan sunucuları seçerken, gereksinimin ek parametreleri dikkate alınır. Minimum sayıda küme hizmetine sahip sunucular, mevcut olanlar listesinden seçilir. Kullanılan çalışan sunucuların sayısı, küme yük devretme düzeyi artı bire eşittir (bkz.).

● Bir lisanslama hizmetini kullanmanız gerekiyorsa, yazılım lisansının bağlı olacağı üretim sunucusunu açıkça seçmeniz ve hizmetin seçilen üretim sunucusuna yerleştirilmesini gereksinimlerde açıkça belirtmeniz gerekir.

● Hizmetlerin geri kalanı tek bir kopya olarak atanır.

Üretim sunucuları arasında küme hizmetlerinin yeniden atanması aşağıdaki durumlarda gerçekleştirilebilir:

● Bir üretim sunucusu eklerken, hizmetlerin kısmi olarak yeniden atanması gerçekleştirilir. Bu yeniden atama otomatik olarak yapılır.

● Üretim sunucusu kümeden kaldırılırsa veya üretim sunucusu kullanılamıyorsa, yalnızca kaldırılan üretim sunucusu tarafından sunulan gereksinim nesneleri yeniden atanır. Bu yeniden atama otomatik olarak gerçekleştirilir.

● Bir kümeye bir bilgi bankası eklediğinizde veya sildiğinizde, kısmi yeniden atama gerçekleştirilir. Bu yeniden atama otomatik olarak yapılır.

2.1.7.3.3. İş akışlarının amacı

Bir istemci uygulaması ile 1C arasında bir bağlantı kurulması: Kurumsal sunucu kümesi aşağıdaki kurallara göre gerçekleştirilir:

● Gerekli çalışma sunucusu, hedefin gereksinimlerine ve RAM kullanımındaki kısıtlamalara göre seçilir.

Seçilen çalışma sunucusunda kurulmuş bağlantı bulunmayan bir bilgi tabanına bağlantı kurma talebi yapılırsa, RAM kullanımıyla ilgili sınırlamalar dikkate alınır. RAM kullanım sınırı aşılırsa, sınırı aşmayan başka bir çalışan sunucu varsa, çalışan sunucu listeden çıkarılır. Ayrıca, hedefin gereksinimlerine göre gerekli bağlantıyı işleyemeyen çalışan sunucuları da hariç tutar.

● Seçilen sunucu için, kullanılabilir olan ve istenen bağlantıya hizmet edebilecek bir çalışan işlemleri listesi belirlenir. Bir iş akışı, aşağıdaki durumlarda mevcut iş akışlarının listesini ifade eder:

● İş akışı için, maksimum tutulan bilgi tabanı sayısına ulaşılmadı (çalışan sunucunun özelliği İşlem başına IB sayısı).

● İş akışı, işleyebileceği maksimum bağlantı sayısına ulaşmamıştır (çalışan sunucu özelliği).

● İş akışı otomatik olarak yeniden başlamaya hazırlanmıyor.

● Seçilen iş akışlarından, hizmet vermek istediğiniz bilgi tabanının bağlantılarına zaten hizmet veren iş akışları tercih edilir. Böyle bir iş akışı yoksa, desteklenen maksimum sayıda bağlantıya sahip iş akışı seçilir.

● Hiçbir iş akışı seçilemezse, istenen bağlantıya hizmet vermek için bu iş sunucusunda yeni bir iş akışı başlatılır.

Mevcut bir oturum adına bir bağlantı kurulurken (önceki bir sunucu çağrısından gelen bağlantıyı yeniden kullanmak mümkün değilse), bu oturumun önceki bağlantısına hizmet eden çalışan işlemi tercih edilir. Bu durumda, diğer iş akışının mevcut performansı, mevcut iş akışının mevcut performansından en az% 25 daha yüksekse, farklı bir iş akışı seçmek mümkündür.

20 dakika içinde bir çalışan sunucuda, hizmet verilen bağlantıların ve çeşitli bilgi tabanlarının toplam sayısının, çalışan sunucu özelliklerinde (özellikler İşlem başına bağlantı sayısı ve İşlem başına IB sayısı), daha az bağlantı sunan işlem eski olarak işaretlenecek ve son bağlantı kesildikten sonra durdurulacaktır. "Eski" bir alt işlem için mevcut bağlantılar, bu bağlantı üzerinden bir sonraki sunucu çağrısında çalışan sunucudan "ayrılmaları istenecektir". Aynı zamanda, "güncel olmayan" iş akışı, yeni istek nesnelerine hizmet verme taleplerinin dağıtımına katılmaz.

1C'de planlanan görevler, belirli prosedürleri belirli bir sıklıkta bir programda gerçekleştirmek için tasarlanmıştır.

Planlanan görevler bilgi bankasında saklanır ve bir başlatma programına sahiptir. Bilgi bankası çalışma modu istemci-sunucu ise, başlatma tamamen otomatik olarak gerçekleştirilir. Temel dosya ise, aşağıdakileri yapmanız gerekir:

  • rutin görevleri gerçekleştirmek için özel bir kullanıcı tahsis edin;
  • bu kullanıcının altında, fonksiyonun periyodik olarak çalıştırılması gereken bir taban açık olmalıdır Execute JobProcessing ().

Planlanmış bir işin oluşturulması

Zamanlanmış görevler - 1C yapılandırma meta veri nesnesi. Genel grubunda yer alır. Planlanan işlerin parametrelerini ve özelliklerini göz önünde bulundurun.

Yöntem adı- Ortak modülde belirtilen programa göre yürütülecek ihracat prosedürünün yolu. Prosedür sunucuda gerçekleştirilmelidir. Bunda, zamanlanmış görevler bir nesneye biraz benzer Etkinlik aboneliği.

Anahtar - aynı türden birkaç planlanmış iş oluşturmanıza olanak sağlar. Örneğin, birkaç bilgi bankası arasında veri senkronizasyonu gerçekleştirmek, tek bir meta veri nesnesi kullanılarak uygulanabilir. Düzenleyici görev, planlanan görevlerin kendileri birkaç tane oluşturulacaktır (değişim için üs sayısına göre). Bu planlanmış görevler mülke göre farklılık gösterecektir Anahtar. Bir seferde aynı anahtara sahip yalnızca bir iş yürütülebilir.

Kullanma - planlanan görevin etkinleştirilip etkinleştirilmediğini gösteren bayrak.

Önceden belirlenmiş- burada dizinin önceden tanımlanmış öğeleriyle bir benzetme yapabilirsiniz. Önceden tanımlanmış öğeler yapılandırıcıda oluşturulur ve kullanıcılar tarafından çalışmalarında kullanılır. Kullanıcı olağan unsurları kendisi yaratır. Planlanmış görevlerle aynıdır: önceden tanımlanmışsa, o zaman mevcuttur ve yapılandırıcıda oluşturulduktan hemen sonra programa göre yürütülebilir. Eğer bayrak Önceden belirlenmişkurulu değilse, kullanıcının kendisinin bu türden bir veya daha fazla zamanlanmış görev oluşturması gerekir (örneğin, Görev Konsolu).

Anormal tamamlanma durumunda yeniden deneme sayısı - bir hatayla sonlandırılırsa arka plan işinin kaç kez yeniden başlatılacağını belirler.

Anormal iş sonlandırması için yeniden deneme aralığı - bir hata ile tamamlanmışsa, arka plan görevinin ne sıklıkla yeniden başlatılacağını belirler.

Zamanlanmış görevlerle programlı çalışma

Bu örneklerde, önceden tanımlanmış değil, normal zamanlanmış görevlerle çalışmayı ele alacağız.

Zamanlanmış görevlerin programlı oluşturulması

// Bir görev oluştur
"Daimi Misyonun Adı") ;

// Planlanan iş anahtarını ayarlayın (isteğe bağlı)
Görev. Anahtar \u003d "QuestKey";

// Zamanlanmış görevi açın
Görev. Kullanım \u003d Doğru;

// Planlanan görevi yazıyoruz
Görev. Yazmak ();

Parametreleri değiştirmek için zamanlanmış bir görevin programlı olarak alınması

Bu örnek için, bu türden yalnızca bir zamanlanmış iş olduğunu varsayalım. Birkaç görev varsa, kodda uygun değişiklikleri yapmak zor değildir.


"JobRegulatoryName"] ) ) ;


Görevler ise. Sayı ()\u003e 0 Sonra
İş \u003d İşler [0];


Aksi takdirde
Görev \u003d Zamanlanmış Görevler. Normal İş Oluştur ( "JobRegulatoryName") ;

EndIf;

// Planlanan iş, İş değişkenindedir. Parametrelerini değiştirebilirsiniz.

Zamanlanmış bir görevin zamanlamasını değiştirmek için iletişim kutusunu çağırma

Zamanlanmış görev programıyla çalışmak için özel bir diyalog türü vardır. Hala bu türden yalnızca bir planlanmış işimiz olduğunu varsayıyoruz.

// Gerekli türde zamanlanmış görevler içeren bir dizi elde edin
Görevler \u003d Rutin Görevler. GetRegularJobs (yeni Yapı ("Meta Veriler", Meta Veriler. Normal İşler [ "JobRegulatoryName"] ) ) ;

// Görev varsa, koşula göre birdir
Görevler ise. Sayı ()\u003e 0 Sonra
İş \u003d İşler [0];

// Görev yoksa oluşturun
Aksi takdirde
Görev \u003d Zamanlanmış Görevler. Normal İş Oluştur ( "JobRegulatoryName") ;

EndIf;

Schedule \u003d Görev. Program;

// Zamanlanmış görev programını değiştirmek için bir iletişim kutusu oluşturun
Diyaloğu Düzenle \u003d Yeni Program İş Program Diyaloğu (Program);

// Kullanıcıya iletişim kutusunu göster ve zamanlama değişikliklerini işleme
Diyalog Düzenleme ise. Modal'ı Aç () Sonra
Görev. Schedule \u003d DialogueEdit. Program;
Görev. Yazmak ();
EndIf;

Soru: Arka plandaki iş süreci anormal bir şekilde sonlandırıldı ...


Herkese iyi günler ve iyi haftalar!)
Kurumsal Muhasebe, revizyon 3.0 (3.0.46.11).
Platform 8.3.9.2033.
Dokümanları bir gruba gönderirken, "Arka plan iş süreci anormal şekilde sonlandırıldı" hatası oluşuyor. Sebep yok ...
SQL sunucusunu yeniden başlatmak, sunucu 1C (asla bilemezsiniz) yardımcı olmuyor ... Belki birisi benzer bir sorunla karşılaştı ??? Bu hatanın ortaya çıkmasından sonra söylemek bile zor, çünkü uzun süredir grup holdingini (ayın kapanışı) kullanmadılar ...

Cevap: () () Tekrar iyi günler) Teknoloji günlüğünü açtım ve çok ilginç şeyler buldum (sorunun ne olduğunu belki biliyorsunuzdur?):
Soket olmayan bir nesne üzerinde bir işlem gerçekleştirilmeye çalışıldı ...
İşlem biter. Giden çağrı engellendi ...
Barındırılan hizmete sahip sunucu bulunamadı ...

Soru: Arka plan işleri


Platform 1C: Kurumsal 8.3 (8.3.9.2170), confa BP 3.0.
Harici veri kaynakları (DBMS tipi - OracleDatabase) aracılığıyla entegrasyon, konfigürasyonda konfigüre edilir. Referans verilerinin, işlemlerin yüklendiği bir dizi tablo eklenmiştir. Çünkü çok fazla veri, arka plan işleri aracılığıyla toplu indirme yapmaya karar verildi. Porsiyon boyutu 100.000, parti boyutu 10.000, belgedeki işlem sayısı 1000, aynı anda çalışan arka planda çalışan iş sayısı 8'dir.
Başladım, yükledim, her şey yolunda. Ama geceleri koyarsam, 1'ler uyku moduna giriyor gibi geliyor, yani. bir süre sonra, günlükte gösterildiği gibi, arka plan işleri başlatılır, ancak bitmez. Sonuç olarak, görevlerin gece 12'de başladığı ve sabah 8'de (fare ile şaka yaptığım zaman) tamamlandığı ve bundan sonra normal modda yürütülmeye devam ettiği ortaya çıktı. Hem ince hem de kalın istemcilerde piyasaya sürüldü. Parametrelerde bir ayar var - pasif bir oturumda uyuma süresi 1200'dür, ancak bu yalnızca ince istemci için geçerli değil ve bu bir sorun olabilir mi? Onu kapatmak istemiyorum çünkü kullanıcılar programdan çıkmaz, uykuya dalmalarına izin verir. Belki birisi benzer bir sorunla karşılaştı? Nasıl karar verdin

Cevap:

Böyle bir olasılık yok.

Bir arka plan işi çalıştırmanın ve tamamlanmasını beklemenin ne anlamı var?
8'den fazla arka plan işi üretmemek için?

Arka plan işlerinin "yöneticisini" sunucu tarafına sürükleyin ve kontrol etmesine izin verin ....

Pentuim D840'ta 40-50 arka plan görevi başlattım - uçuş normal, sonra zaten işlemciye / belleğe dayanıyor.

S: Bir arka plan işine bir dosya nasıl aktarılır


Platform 8.3.6.2152
Daha fazla işlem için dosyanın UV'den arka plan işine aktarılması gerekir.
Bunu ben yaptım:
& OnClient
Prosedür Command1 (Komut) FileDD \u003d Yeni İkili Veri (DosyaAdı); StorageAddressFor Background \u003d PlaceTporaryStorage (FileDD, UniqueIdentifier); StartUploadOnServer (StorageAddressFor Background) EndProcedure & OnServer Fonksiyonu StartUploadUploadOnServer (StorageAddressFor Background) Yöntem Parameters \u003d New Array; Yöntem Parameters.Add (StorageAddressFor Background); Job \u003d BackgroundJobs.Run ("MySharedModule.MyBackground", MethodParameters); EndFunction
Ortak bir modülde:

Prosedür MyBackground (Depolama Adresi) Dışa Aktarma DosyasıDD \u003d Geçici Depolamadan Getir (Depolama Adresi); IfTypeZnch (FileDD) \u003d Yazın ("BinaryData") Sonra Kayıt Kaydı Kayıt Kaydı("Hata Ayıklama", "DD Yok"); EndIf; EndProcedure Bunu şu şekilde denedi: PlacedFiles \u003d New Array; PlacedFiles.Add (TransferredFile'ın Yeni Açıklaması (FileName)); PlacedFiles \u003d Yeni Dizi; DON'T PutFiles (PlacedFiles, PlacedFiles, False, UniqueId) Sonra Geri Dönün; EndIf; StorageAddressFor Background \u003d PlacedFiles.Storage; Bunu şu şekilde denedim: StoreAddressFor Background \u003d PutTemporalStore (Undefined, UniqueIdentifier); PlaceFile (StorageAddressFor Background, FileName, False);
Normalde geçici depolama yoluyla arka plandan istemciye aktarılır, ancak bir nedenle istemciden arka plana aktarılır.

Cevap: Genel olarak, her şeyin oldukça basit olduğu ortaya çıktı. Aptalca BinaryData'yı parametre olarak bir arka plan işine aktarabileceğiniz ortaya çıktı. Vasıfsız hayranların yardımdan alıntı yapmaları ve çalışma kodunu "amaçlandığı gibi" söylemeleri için:
& OnClient
Prosedür Command1 (Command) StartUploadUploadOnServer (New BinaryData (FileName)) EndProcedure
& AtServer İşlevi StartUploadUploadOnServer (DD) Yöntem Parametreleri \u003d Yeni Dizi; Method.Add (DD) Parametreleri; Job \u003d BackgroundJobs.Run ("MySharedModule.MyBackground", MethodParameters); EndFunction Prosedürü MyBackground (FileDD) Export ZnchType (FileDD) \u003d Type ("BinaryData") Sonra Kayıt Kaydı("Hata Ayıklama", "DD Var"); Aksi takdirde Kayıt Kaydı("Hata Ayıklama", "DD Yok"); EndIf; Prosedürün Sonu

Soru: İstenilen kullanıcı altında bir arka plan işi çalıştırma


Merhaba!
1C: Enterprise 8.3 (8.3.11.2924), UT 11.3.4.93 istemci - sunucu vardır.
Bu konfigürasyonda, "Müşterilerle belgelerle anlaşmalar" kaydındaki hareketler, belgenin kaydedilmesi sırasında değil, "Müşteriler / tedarikçilerle yapılan anlaşmalar için ertelenmiş işlemlerin yürütülmesi" planlı görev tarafından gerçekleştirilir.
Aynı zamanda, bazen planlanan görev bir hata verdi, çünkü Kapalı bir dönemde hareketler yapmaya çalıştı (Düzenleme yasağı tarihinden önce). Yasaklanma tarihi açık olan zamanlanmış görevin ayarlarında özel bir kullanıcı kaydedildi, bundan sonra her şey çalışmaya başladı.
Bununla birlikte, kayıt hareket verilerini belge kaydedildiği anda yapmaya ihtiyaç vardır ve arka plan işi programa göre başlatıldığında değil.
Bir belgeyi gönderirken zamanlanmış bir görevi gerçekleştiren kodun kendisini çalıştırırsanız, aynı hata oluşur - dönem kapanır. Belgenin gönderilmesi sırasında aynı kodu çalıştıran bir arka plan görevini programlı olarak çalıştırırsanız, tam olarak aynı hataya neden olur, çünkü dönem kapatılır ve programlı olarak başlatılan arka plan görevi mevcut kullanıcının adı altında başlatılır ve yasaklanma tarihi kapatılır. Ancak, zamanlayıcıda "doğru" kullanıcıya sahip zamanlanmış bir arka plan görevi başlatıldığında, her şey bir patlama ile gider. İşte programlı olarak nasıl yapılacağı, bir arka plan görevinin istenen kullanıcı altında "zamanlayıcı aracılığıyla" programlı olarak nasıl çalıştırılacağı standart zamanlanmış görevler bunu nasıl yapar, lütfen bana söyleyin?

Cevap:

Yapılandırıldığı altında değil mi?
Bu bir yapılandırma hatası olmalı

Lis2007 şunları söyledi:

Merhaba! Aynı zamanda, zamanlanan görev bazen hata verdi, çünkü kapalı bir dönemde hareketler yapmaya çalıştı (Düzenleme yasağı tarihinden önce). Yasaklanma tarihi açık olan zamanlanmış görevin ayarlarında özel bir kullanıcı kaydedildi, bundan sonra her şey çalışmaya başladı

Genişletmek için tıklayın ...

Soru: Bir arka plan işinde hata ayıklama


Arka plan işi bir hata ile çalışıyor. Hata ayıklamaya karar verdim.
tek bir hatla harici işlemeyi gerçekleştirin:
BackgroundJobs.Run ("MyModule.MyJobs");
Bir modülde bir kesme noktasına ulaşmaz.
Sunucuda hata ayıklamaya izin verilir, onay kutusu hata ayıklamada, otomatik bağlantıda, arka plan işleri buna değer. Başka ne problem olabilirdi ki?

Cevap: Ortak modüllerde, sunucu yürütülmesini değil istemci gerektiren işlevlere bir çağrı vardı. Onları parantez içine koymak zorunda kaldım # If Client Then. Arka plan da işe yaradı.

Soru: Takas yapılırken bir hata oluştu


İyi günler Nereyi kazacağımı söyle bana:
muhasebe veri tabanında bir değişim yapıyorum. Standart bir değişim yoluyla UT-shki'den yaklaşık üç düzine belge boşaltılır. Uzun bir süre düşünürler (yaklaşık bir saat) ve şu mesajla biter:
arka plan iş süreci çöktü