İçeriğe geç

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ğerAnlamı
"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();