本文整理汇总了TypeScript中rcf.AuthorizedRestApi.%24M方法的典型用法代码示例。如果您正苦于以下问题:TypeScript AuthorizedRestApi.%24M方法的具体用法?TypeScript AuthorizedRestApi.%24M怎么用?TypeScript AuthorizedRestApi.%24M使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类rcf.AuthorizedRestApi
的用法示例。
在下文中一共展示了AuthorizedRestApi.%24M方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: Date
import * as rcf from 'rcf';
import * as $node from 'rest-node';
import * as fs from 'fs';
import * as path from 'path';
let configFile = (process.argv.length < 3 ? path.join(__dirname, '../client_test_config.json') : process.argv[2]);
let connectOptions: rcf.ApiInstanceConnectOptions = JSON.parse(fs.readFileSync(configFile, 'utf8'));
let pathname = '/services/events/event_stream';
let api = new rcf.AuthorizedRestApi($node.get(), rcf.AuthorizedRestApi.connectOptionsToAccess(connectOptions));
let clientOptions: rcf.IMessageClientOptions = {reconnetIntervalMS: 3000};
let client = api.$M(pathname, clientOptions);
client.on('connect', (conn_id:string) => {
console.log('');
console.log('connected: conn_id=' + conn_id);
console.log('');
//let topic = '/topic/'+conn_id;
let topic = '/topic/say_hi';
client.subscribe(topic
, (msg: rcf.IMessage): void => {
console.log('msg-rcvd:');
console.log('===============================================');
console.log(JSON.stringify(msg, null, 2));
console.log('===============================================');
}, {"selector": "location = 'USA'"}
).then((sub_id: string) => {
console.log('topic subscribed sub_id=' + sub_id + " :-)");
console.log('sending a test message...');
return client.send(topic, {'location': 'USA'}, {'greeting':'good afternoon ' + new Date()});
示例2: sendDispatcherNodeReady
}).on('connect', () => {
console.error(new Date().toISOString() + ': connected to the database :-)');
let client = api.$M(pathname, clientOptions);
function sendDispatcherNodeReady() : Promise<rcf.RESTReturn> {
console.log(new Date().toISOString() + ': sending a node-ready message...');
let nodeReady: INodeReady = {
numCPUs: numCPUs
,name: nodeName
};
let msg: GridMessage = {
type: 'node-ready'
,content: nodeReady
};
return client.send('/topic/dispatcher', {type: 'node-ready'}, msg);
}
function notifyDispatcherTaskComplete(task: ITask) : Promise<rcf.RESTReturn> {
let msg: GridMessage = {
type: 'task-complete'
,content: task
};
return client.send('/topic/dispatcher', {type: 'task-complete'}, msg);
}
function killProcessesTree(pids:number[]) {
for (let i in pids) {
let pid = pids[i];
treeKill(pid, 'SIGKILL');
}
}
function sendNodeQueryStatusResponse(response: NodeQueryStatusResponse) : Promise<rcf.RESTReturn> {
let msg: GridMessage = {
type: 'node-query-status'
,content: response
};
return client.send('/topic/dispatcher', {type: 'node-query-status'}, msg);
}
client.on('connect', (nodeId:string) : void => {
console.log(new Date().toISOString() + ': connected to the dispatcher: nodeId=' + nodeId);
client.subscribe('/topic/node/' + nodeId
,(msg: rcf.IMessage): void => {
console.log(new Date().toISOString() + ': msg-rcvd: ' + JSON.stringify(msg));
let gMsg: GridMessage = msg.body;
if (gMsg.type === 'launch-task') {
let task: ITask = gMsg.content;
let TrackingId = tasksTracker.beginTracking(task);
let taskExec = getTaskExec(nodeId, gridDB);
taskExec.on("error", (err: any) => {
console.error(new Date().toISOString() + ": !!! Error running task " + JSON.stringify(task) + ": " + JSON.stringify(err) + " :-(");
// TODO: sent error message to the server
}).on("exec-params", (taskExecParams: ITaskExecParams) => {
tasksTracker.updateTracking(TrackingId, {cmd: taskExecParams.cmd, envJSON: taskExecParams.envJSON});
console.log(new Date().toISOString() + ": running task " + JSON.stringify(task) + " with exec-params=\n" + JSON.stringify(taskExecParams, null, 2));
}).on("started", (pid: number) => {
tasksTracker.updateTracking(TrackingId, {pid});
console.log(new Date().toISOString() + ": task " + JSON.stringify(task) + " started with pid=" + pid);
}).on("finished", (retCode: number) => {
console.log(new Date().toISOString() + ": task " + JSON.stringify(task) + " finished with retCode=" + retCode);
}).run(task)
.then(() => {
tasksTracker.endTracking(TrackingId);
notifyDispatcherTaskComplete(task)
.then(() => {
console.log(new Date().toISOString() + ': <task-complete> notification for task ' + JSON.stringify(task) + ' successfully sent to the dispatcher :-)');
}).catch((err: any) => {
console.error(new Date().toISOString() + ': !!! Error sending <task-complete> notification for task '+ JSON.stringify(task) + ' to the dispatcher :-(');
});
});
} else if (gMsg.type === 'kill-processes-tree') {
let pids: number[] = gMsg.content;
killProcessesTree(pids);
} else if (gMsg.type === 'node-query-status') {
let request: NodeQueryStatusRequest = gMsg.content;
let response: NodeQueryStatusResponse = {
QueryId: request.QueryId
,Status: {
FreeMem: os.freemem()
,TotalMem: os.totalmem()
,UptimeSec: os.uptime()
,RunningTasks: tasksTracker.toJSON()
}
};
sendNodeQueryStatusResponse(response)
.then(() => {
}).catch((err: any) => {
console.error(new Date().toISOString() + ': !!! Error sending back <node-query-status> message: ' + JSON.stringify(err));
});
}
},{})
.then((sub_id: string) => {
console.log(new Date().toISOString() + ': topic subscribed sub_id=' + sub_id + " :-)");
sendDispatcherNodeReady()
.then(() => {
console.log(new Date().toISOString() + ': message sent successfully :-)');
}).catch((err: any) => {
console.error(new Date().toISOString() + ': !!! Error: message send failed');
//.........这里部分代码省略.........