Senin bilmediğin bir şey biliyorum: sonra



  1. Senin bilmediğin bir şey biliyorum: sonra

Cron işlerini tanımlamak veya daha genel olarak belirli etkinliklerin zamanlanmış yürütülmesi için ilginç bir modül Daha Sonra’dır. Node.js ile ve ayrıca tarayıcıda kullanılabilir ve bir veritabanı gerektirmez.


“Senin Bilmediğin Bir Şeyi Biliyorum”


…Golo Roden ve Philip Ackermann’ın ortak serisidir ve bu seride ikisi düzenli olarak JavaScript ve Node.js için modüller sunar.





Node.js için cron işlerini veya belirli etkinliklerin (görevlerin) zamanlı yürütülmesini tanımlamak için çok sayıda modül vardır: node-schedule, node-cron veya ajanda, bunlardan sadece birkaçı. Bu kategorideki ilginç bir modül, hem Node.js’de hem de tarayıcıda kullanılabilen ve bir veritabanına ihtiyaç duymayan (örneğin, bir MongoDB’nin kurulu olmasını gerektiren ajanda modülünün aksine) Later modülüdür. Ayrıca modül, öğrenmesi ve kullanması oldukça kolay bir API’ye sahiptir.

mobilya


Modülü Node.js altında kullanmak isterseniz Node.js Paket Yöneticisi üzerinden komutu ile yapabilirsiniz. npm daha sonra kur yüklemek. Öte yandan, tarayıcı ortamında kullanmak isterseniz aşırı yüklemiş olursunuz. Bower’ı daha sonra kurun buna karşılık mevcut projede bir bağımlılık olarak. Node.js altında modül, komut aracılığıyla her zamanki gibi çalışır gerektir(‘sonra’) aracılığıyla ilgili kitaplık dosyası bir HTML belgesi içinde entegre edilmiştir. -Element.

// Einbinden unter Node.js
let later = require('later');
// Einbinden im Browser
<script src="bower_componets/later/later.min.js" type="text/javascript"></script>

Yönetici planlarının tanımı


Modülün güzel yanı, bireysel görevleri planlamanın veya bunlar için yürütme planları tanımlamanın farklı şekillerde yapılabilmesidir. Sonuç olarak modül, nesneyi kullanarak üç farklı analiz yöntemi sunar. sonra.ayrıştır sağlanmak.

Örneğin, cron sözdizimini tercih edenler, yöntemi kullanabilirler. later.parse.cron() eşleşen bir cron ifadesini basitçe ilettiğiniz kullanın. Örneğin, her gün saat 8:30’da çalışan bir görev tanımlamak için aşağıdaki komutu kullanın:


let schedule = later.parse.cron('30 8 ? * *');

(Cron sözdizimine aşina olmayanlar için not: dizideki konumlar (1) dakika, (2) saat, (3) gün, (4) ay ve (5) haftanın gününü temsil eder. Yaklaşık olarak virgül gibi daha fazla karakter (,), kısa çizgi (-) ve ters eğik çizgi (/), ayrıca birden çok kez, nokta veya nokta belirtebilirsiniz).

Tüm bunlar sizin için çok gizemliyse, modül iki ilginç alternatif sunar. Yani, yukarıdaki yürütme planı, yöntem kullanılarak yürütülebilir. later.parse.text() sesli metinle girin:

let schedule = later.parse.text('at 8:30 am');

Bu şekilde, aşağıdakiler gibi daha karmaşık yürütme planları tanımlamak da mümkündür:

let schedule = later.parse.text('at 8:30 am also at 5:30pm
except on Tuesday');

Okuması güzel ama hatırlaması zor. En azından mevcut metin modüllerini içselleştirmek için biraz zamana ihtiyacınız var. Bu, üçüncü ve son alternatifin devreye girdiği yerdir, çünkü akıcı bir API (yani, insan tarafından okunabilen bir konuşma API’si) tanımlayarak, bireysel yöntem çağrılarını zincirlemenize izin vererek oldukça okunabilir bir kod sağlar. Az önce açıklanan tamamen metinsel girdiyle karşılaştırıldığında, bu zincirleme yöntem çağrıları, uygun IDE veya düzenleyici desteğine sahip olmaları koşuluyla, geliştiricinin onları hatırlaması gerekmemesi avantajına sahiptir. İlk saatten itibaren basit yürütme planı, yöntemi kullanırdı later.parse.recur() aşağıdaki gibi tanımlanır:

let schedule = later.parse.recur().on(8,30).hour();

Daha karmaşık ifadelerle, bu API’nin ne kadar net olduğu daha da netleşir:

let schedule = later.parse.recur()
.every(2).hour() // alle zwei Stunden
.first().dayOfMonth() // am ersten Tag eines Monats
.and() // und
.on(8, 20).hour() // zwischen 8:00 und 20:00
.last().dayOfMonth() // am letzten Tag eines Monats
.except().on(5).month(); // außer im Mai

Gösterilen üç seçeneğin tümü, bir görev için karşılık gelen yürütme planını içeren bir nesne oluşturur (örneklerde, değişken saat). Nihayetinde bunlar, gösterilen seçeneklerden herhangi birine başvurmadan prensipte manuel olarak da oluşturulabilen basit nesnelerdir (POJO diyebilir).

aktivitelere başla


Ancak bir planlama kalemi alırsınız, yapmanız gereken bir sonraki şey bir iş kurmaktır. Modül bunun için iki yöntem sağlar: after.setTimeout() bir görevi bir kez gerçekleştirmek e after.setInterval() bir görevin tekrar tekrar yürütülmesi için. Her iki yöntem de karşılık gelen etkinliği (bir işlev biçiminde) ve yeni tanımlanan programlama nesnesini parametre olarak bekler:

// Einmalige Ausführung
function logTime() {
console.log(new Date());
}
let timerTimeout = later.setTimeout(logTime, schedule);
// Wiederholte Ausführung
let timerInterval = later.setInterval(logTime, schedule);


Döndürülen zamanlayıcı nesnesine, yöntem çağrılarak erişilebilir. açık() bir yürütme planını tekrar iptal edin.

Çözüm


Daha sonra modülü, görevlerin zamanlı olarak yürütülmesine izin verir. Yürütme planları, cron ifadeleri, sözlü metin pasajları veya kullanımı nispeten kolay akıcı bir API kullanılarak oluşturulabilir. Diğer benzer modüllere göre avantajları, bir yandan modülün hem Node.js altında hem de tarayıcıda kullanılabilmesi ve diğer yandan bağımlılık olarak herhangi bir veritabanı gerektirmemesidir.


()



Haberin Sonu
 
Üst