我有一个由gradle任务运行的java和groovy类.我设法让它工作,但我不喜欢我必须在命令行中传递参数的方式.以下是我目前通过命令行执行的操作:gradle runTask -Pmode"['doStuff','username','password']"
我的build.gradle代码采用这些参数,如下所示:
if (project.hasProperty("mode")) {
args Eval.me(mode)}
Run Code Online (Sandbox Code Playgroud)
然后我在我的java代码中使用我的参数/参数,如下所示:
String action = args[0]; //"doStuff"
String name = args[1]; .. //"username"
Run Code Online (Sandbox Code Playgroud)
我想知道有没有办法以更好的方式传递参数,例如:
gradle runTask -Pmode=doStuff -Puser=username -Ppass=password
Run Code Online (Sandbox Code Playgroud)
以及如何在我的java类中使用它们.
我有这个简单的描述实例函数,我试图通过AWS Lambda在nodejs中运行:
var AWS = require('aws-sdk');
AWS.config.region = 'us-east-1';
exports.handler = function(event, context) {
console.log("\n\nLoading handler\n\n");
var ec2 = new AWS.EC2();
ec2.describeInstances(function(err, data) {
console.log("\nIn describe instances:\n");
if (err) {
console.log(err, err.stack);
context.done(null, 'Function Finished from error!'); // an error occurred
}else {
console.log("\n\n" + data + "\n\n");
context.done(null, 'Function Finished with data!'); // successful response
}
});
};
Run Code Online (Sandbox Code Playgroud)
这不会给我带来任何错误,CloudWatch中唯一的输出是:
2016-03-21T17:01:59.085Z xxxxxxx-xx.... Task timed out after 3.00 seconds
Run Code Online (Sandbox Code Playgroud)
任何人都知道可能是什么问题?
我在 EC2 中有 Auto Scaling 组,我想检测实例终止时的状态,以便我可以在终止之前开始导出日志文件。
我知道一种方法是使用自动缩放生命周期挂钩,但根据我的理解,我将不得不使用外部监视器,然后它必须通过 ssh 进入实例并导出日志文件。理想情况下,我想找到一种如何从内部检测实例状态的方法(当自动缩放组发送命令终止它时),这样它就可以自己进行导出,而无需与任何其他实例进行通信。任何人都会知道是否可以这样做,如果可以,我可以从哪里开始?
我正在研究NodeJs中的一个项目,该项目要求我登录以获取在检索数据时使用的cookie.我有以下代码成功登录并返回一个格式正确的cookie:
var request = require('request');
var requestData = {
"username":"myUsername",
"password":"myPassword"
}
//request post request
request({
url: 'http://localhost/login',
method: "POST",
json: requestData}
,function(err, res) {
if(err){
console.log("it did not work: " + err)
}
console.log(res.statusCode)//logs as 201 sucess
console.log("heres the cookie: "+res.headers['set-cookie']) //returns cookie in correct format
var cookie = res.headers['set-cookie']
//requesting data
request({
url: 'http://localhost/delivery-stats',
method: "GET",
header: {
'set-cookie': cookie
}
},function(err,response){
console.log(response.headers) // one of the headers says user is not authorised
}
)
});
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我尝试使用附加了cookie的GET请求时,它表示用户未经授权,这意味着cookie未正确传递,任何人都会知道如何使用请求模块执行此操作?谢谢
我正在开发一个项目,我的API在其结尾处返回带有id的url,我想将其解压缩以用于另一个函数.这是url的示例:
String advertiserUrl = http://../../.../uuid/advertisers/4 <<< this is the ID i want to extract.
Run Code Online (Sandbox Code Playgroud)
目前我正在使用java的字符串函数substring(),但这不是最好的方法,因为ID可能会成为3位数字,我只会得到它的一部分.继承了我目前的做法:
String id = advertiserUrl.substring(advertiserUrl.length()-1,advertiserUrl.length());
System.out.println(id) //4
Run Code Online (Sandbox Code Playgroud)
它适用于这种情况,但如果id是例如"123",我只会在使用子字符串后得到它为"3",所以我的问题是:有没有办法用破折号"/"剪切/修剪字符串?让我说当前网址中的theres 5 /所以字符串在检测到第五个破折号后会被切断?任何其他合理的方法也会有所帮助.谢谢.
url中的ps uuid也可能在长度上有所不同
我正在努力完成一项非常简单的任务,但我有点困惑,并坚持在nodejs中使用zlib.我正在构建功能,包括我从aws S3下载文件gziped,解压缩并逐行读取.我想用流完成所有这些,因为我相信它可以在nodejs中完成.
这是我目前的代码库:
//downloading zipped file from aws s3:
//params are configured correctly to access my aws s3 bucket and file
s3.getObject(params, function(err, data) {
if (err) {
console.log(err);
} else {
//trying to unzip received stream:
//data.Body is a buffer from s3
zlib.gunzip(data.Body, function(err, unzippedStream) {
if (err) {
console.log(err);
} else {
//reading line by line unzziped stream:
var lineReader = readline.createInterface({
input: unzippedStream
});
lineReader.on('line', function(lines) {
console.log(lines);
});
}
});
}
});
Run Code Online (Sandbox Code Playgroud)
我收到一个错误说:
readline.js:113
input.on('data', ondata); …Run Code Online (Sandbox Code Playgroud) 所以我正在开发这个项目,在那里我导出一些包含敏感信息的数据文件,我想为每个数据文件生成uuid.我正在使用节点uuid模块,但每次运行我的函数时,UUID实际上是相同的,旧文件被新文件覆盖,因为它的UUID是相同的.这里剪了我的代码:
var nodeUuid = require('node-uuid');
var uuid = nodeUuid.v4();
function createFile(){
var filename = 'reports-'+uuid+'.txt';
}
...
createFile();
Run Code Online (Sandbox Code Playgroud)
所以每当我调用函数createFile()时,我得到相同的UUID,我的文件被覆盖了,知道如何为每个新文件实际生成唯一的id?
我正在研究一个函数,如果任何一个点位置在定义的矩形边界之外,它应该返回false.
我目前的c ++代码如下:
bool trackingPointsVisible(){
//I've got 4 points here
if(!points.empty()){
// loop through each of the points
for(int i=0; i<points.size(); i++){
//check if points' x and y positions are out of the boundaries
if(points[i].x < -60 || points[i].x > 300 ||
points[i].y < -60 || points[i].y > 300){
// if any of them are out return false
return false;
}else{
//if they're within the boundaries, return true
return true;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,true即使其中一个点超出指定的边界,它也会返回.我不认为应该是这种情况.我应该重写这个功能并单独检查每个点还是有另一种方法?
谁能指出我在这里做错了什么?谢谢.
node.js ×4
amazon-ec2 ×2
java ×2
javascript ×2
aws-lambda ×1
boolean ×1
build.gradle ×1
c++ ×1
cookies ×1
for-loop ×1
gradle ×1
gunzip ×1
if-statement ×1
regex ×1
request ×1
return ×1
stream ×1
string ×1
timeout ×1
uuid ×1
zlib ×1