我想使用 Java 创建一个预定的网络作业来每天归档一次我的数据。我的计划是尽量减少 webjob 本身的依赖关系,只是简单地对我的主应用程序的运行实例进行 Http 调用,以便它可以处理其余的事情。我遇到的问题是webjob成功上传后,我点击运行,它成功,然后立即失败。只记录成功,所以我完全不知道是什么导致了失败。我希望有更多经验的人可以引导我完成整个过程,以帮助我弄清楚我缺少什么。
Java 代码如下所示:
HttpURLConnection httpConnection = null;
Integer responseCode = null;
try {
URL serverUrl = new URL(endpoint);
httpConnection = (HttpURLConnection) serverUrl.openConnection();
httpConnection.setRequestMethod("GET");
responseCode = httpConnection.getResponseCode();
System.out.println("Status: " + responseCode + " - " + httpConnection.getResponseMessage());
return responseCode;
} catch (Exception e) {
if (responseCode != null) {
System.out.println("Status: " + responseCode + " - " + httpConnection.getResponseMessage());
}
e.printStackTrace();
} finally {
if (httpConnection != null) {
httpConnection.disconnect();
}
}
return 400;
简化,但只知道它自己运行得很好。
我的过程是将此代码导出为 jar 文件,然后将 jar 文件与批处理文件一起压缩为 zip。
批处理文件内容如下:
set JAVA_HOME=D:\Program Files (x86)\Java\jdk1.8.0_202
set CLASSPATH=.;%JAVA_HOME%\lib
set PATH=%JAVA_HOME%\bin;%PATH%
java -jar archive-webjob.jar
而且我已经尝试过使用不同的 jdks,1.8.0_202 是最新的。
在其他地方,我看到使用了其他文件,例如 web.config 或 settings.job,但我自己没有看到使用它们有任何区别。
至于我在 Azure 上的设置,always-on 设置为 true,以及 Tomcat 8.5(自动)、Java 1.8(自动)、64 位和最小安全配置。
不幸的是,我很难找到有关如何执行此操作的资源。因此,如果我遗漏了一些明显的东西,请多多包涵。
仅供参考,不幸的是 Azure 功能不适合我,因为我的公司不允许使用 Azure CLI 进行部署,但我确信这将是一个很好的解决方案。
提前感谢您提供任何有用的信息。