Data Transfer API
Bir script’in Veri Transferi tanımını zamanlayıcıya eklemesini, çıkarmasını ve durumunu okumasını sağlar. Veri transferi, bir değişkenin değerini başka bir değişkene kopyalar; istediğinde önce kayıt geçmişinden bir istatistik hesaplar — dosya yazmaz.
Zamanlama ve iptal SCHEDULE_DATA_TRANSFER yetkisi ister; ikisi de denetim günlüğüne operatör eylemi olarak yazılır.
ins.scheduleDataTransfer(name) / (projectName, name)
Section titled “ins.scheduleDataTransfer(name) / (projectName, name)”Transferi zamanlayıcıya ekler; tanımındaki periyotla çalışmaya başlar. projectName verilmezse çağıran proje kullanılır.
ins.scheduleDataTransfer("hourly_energy_calc");ins.scheduleDataTransfer("other_project", "hourly_energy_calc");Proje aktif olmalıdır — pasif bir projede zamanlama reddedilir.
ins.cancelDataTransfer(name) / (projectName, name)
Section titled “ins.cancelDataTransfer(name) / (projectName, name)”Transferi zamanlayıcıdan çıkarır: kalan tetiklemeler iptal edilir, o sırada süren bir çalışma sonuna kadar gider.
ins.cancelDataTransfer("hourly_energy_calc");ins.getDataTransferStatus(name) / (projectName, name)
Section titled “ins.getDataTransferStatus(name) / (projectName, name)”İki metinden birini döner:
| Değer | Anlamı |
|---|---|
"Scheduled" | Zamanlayıcıya bağlı |
"Not Scheduled" | Bağlı değil |
if (ins.getDataTransferStatus("hourly_energy_calc") === "Not Scheduled") { ins.scheduleDataTransfer("hourly_energy_calc");}ins.getDataTransferStatuses(names) / (projectName, names)
Section titled “ins.getDataTransferStatuses(names) / (projectName, names)”Adı verilen transferlerin durumları, istenen ada göre anahtarlanır. İstenen her ayrı ad, istek sırasına göre bir girdi alır; çözülemeyen ad listeden düşürülmez, "Not Scheduled" varsayılanını taşır.
var statuses = ins.getDataTransferStatuses(["hourly_energy_calc", "daily_avg_temp"]);ins.getDataTransferStatusesByProject() / (projectName)
Section titled “ins.getDataTransferStatusesByProject() / (projectName)”Projedeki, çağıranın görebildiği tüm transferlerin durumları, ada göre — space ve rol erişimiyle süzülmüş.
var all = ins.getDataTransferStatusesByProject();for (var name in all) { if (all[name] === "Not Scheduled") ins.scheduleDataTransfer(name);}Örnek: özetlemelerin çalıştığından emin olmak
Section titled “Örnek: özetlemelerin çalıştığından emin olmak”function main() { var wanted = ["hourly_energy_calc", "daily_avg_temp"]; var statuses = ins.getDataTransferStatuses(wanted);
for (var i = 0; i < wanted.length; i++) { var name = wanted[i]; if (statuses[name] === "Not Scheduled") { ins.scheduleDataTransfer(name); ins.writeLog("info", "DataTransfer", name + " zamanlandı"); } }}main();