- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为一家银行运行的现有代码,我的新要求基于银行,我必须运行计划作业,例如: if(bank==city) 为城市银行特定任务安排作业 if(bank==hdfc) Schedule hdfc 特定任务的工作 ---- 像这样,任何人都可以指导我如何实现这一目标。注意:银行名称是根据客户 ID 获取的。
@SpringBootApplication
@EnableScheduling
public class Application implements CommandLineRunner {
public static void main(String args[]) {
try{
SpringApplication.run(Application.class);
}catch(Exception e){
}
}
@Override
public void run(String... args) throws Exception {
}
}
service:
@Component
public class HolcimSFTPPoolScheduler {
private SchedulerDetails schedulerDetails = null;
HolcimSFTPPool holcimSFTPPool = new HolcimSFTPPool();
PaymentUploadEncription paymentUploadEncription = null;
PaymentDAO paymentDAO = new PaymentDAO();
DecryptFile decryptFile = null;
public HolcimSFTPPoolScheduler() {
decryptFile = new DecryptFile();
}
public String getbankName() {
//getting bank name logic
}
@Bean
public TaskScheduler poolScheduler() {
ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
scheduler.setThreadNamePrefix("poolScheduler");
scheduler.setPoolSize(10);
return scheduler;
}
@Scheduled(cron = "0 30 5 * * *")
@Scheduled(cron = "0 0 6 * * *")
@Scheduled(cron = "0 30 9 * * *")
@Scheduled(cron = "0 0 10 * * *")
@Scheduled(cron = "0 30 12 * * *")
@Scheduled(cron = "0 0 13 * * *")
@Scheduled(cron = "0 30 15 * * *")
@Scheduled(cron = "0 0 16 * * *")
@Scheduled(cron = "0 30 18 * * *")
@Scheduled(cron = "0 0 19 * * *")
public void returnFileProcess() {
paymentDAO = new PaymentDAO();
PaymentResponseDecription paymentResponseDecription = new PaymentResponseDecription();
List<String> postedFilesNameList = holcimSFTPPool.downloadResponseFile(remotePostedReturnPath,postedMovePath,postedExtension);
List<String> unpostedFilesNameList = holcimSFTPPool.downloadResponseFile(remoteUnpostedReturnPath,unpostedMovePath,unpostedExtension);
for (int i = 0; i < postedFilesNameList.size(); i++) {
Integer count = 0;
Boolean successStatus = false;
schedulerDetails = new SchedulerDetails();
try {
schedulerDetails.setFileType("RETURN");
String postedFile = postedFilesNameList.get(i);
schedulerDetails.setLastFileName(postedFile);
Boolean decryptStatus = decryptFile.decryptedFile(postedFile.trim(), privateKey.trim(),
privatePass.trim());
if (decryptStatus) {
count = paymentResponseDecription.readFile(postedFile + ".txt", loaclReturnFilePath);
successStatus = true;
} else {
GenericExceptionLog.log("Return posted File is not decrypted");
}
schedulerDetails.setTotalTransaction(count);
if (successStatus) {
paymentDAO.insertScheduleDetails(schedulerDetails);
}
} catch (Exception e) {
GenericExceptionLog.exceptionJava(e,"Return posted File Processing...", "HolcimSFTPPoolScheduler");
}
}
if(unpostedFilesNameList.size()<1) {
GenericExceptionLog.log("posted file is not received");
}
for(int i =0;i<unpostedFilesNameList.size();i++){
Integer count = 0;
Boolean successStatus = false;
schedulerDetails = new SchedulerDetails();
try{
schedulerDetails.setFileType("RETURN");
String unpostedFile = unpostedFilesNameList.get(i);
schedulerDetails.setLastFileName(unpostedFile);
Boolean decryptStatus = decryptFile.decryptedFile(unpostedFile.trim(), privateKey.trim(),
privatePass.trim());
if (decryptStatus) {
paymentResponseDecription.readFile(unpostedFile + ".txt", loaclReturnFilePath);
successStatus = true;
} else {
GenericExceptionLog.log("Return Unposted File is not decrypted");
}
schedulerDetails.setTotalTransaction(count);
if (successStatus) {
paymentDAO.insertScheduleDetails(schedulerDetails);
}
}
catch(Exception e){
GenericExceptionLog.exceptionJava(e, "return unposted file processing.. ","HolcimSFTPPoolScheduler");
}
}
if(unpostedFilesNameList.size()<1) {
GenericExceptionLog.log("Unposted file is not received");
}
}
// Deleted previous day all Insufficient Funds Transactions
@Scheduled(cron = "0 10 0 * * *")
void deletedAllPreviousDayTransaction (){
GenericExceptionLog.log("Insufficient Funds Batch Start");
paymentDAO = new PaymentDAO();
paymentDAO.deletedTransaction();
GenericExceptionLog.log("Insufficient Funds Batch End");
}
@Scheduled(cron = "0 30 4 * * *")
@Scheduled(cron = "0 30 8 * * *")
@Scheduled(cron = "0 30 11 * * *")
@Scheduled(cron = "0 30 14 * * *")
@Scheduled(cron = "0 30 17 * * *")
public void uploadFileProcess() {
GenericExceptionLog.log("Starting First Batch Timing ::");
Boolean status = false;
paymentDAO = new PaymentDAO();
schedulerDetails = new SchedulerDetails();
try {
StringBuffer query = new StringBuffer();
String seq = getSequence("UPLOAD");
schedulerDetails.setFileType("UPLOAD");
schedulerDetails.setSequenceNumber(seq);
query.append("SELECT ID,REQUEST_PACKET,TRANS_NUMBER,CUSTOMER_CODE,SD_DOC_NO,REF_SO_NO,AMOUNT_TO_PAY ");
query.append(" FROM PAYMENT_TRANSACTION ");
query.append(
" where uploaded_status =? and ( cast ([scheduleDate] as date) >= CONVERT(date, getdate()-1) and cast ([scheduleDate] as date) <= CONVERT(date, getdate()))");
List<PaymentRequestPacket> list = paymentDAO.getAllRequestTrasnsactionPacket(query.toString());
GenericExceptionLog.log("successfully fetch all requested packet ::List is empty" + list.isEmpty());
if (null != list && !list.isEmpty()) {
String fileName = paymentUploadEncription.getFileName(seq) == null ? ""
: paymentUploadEncription.getFileName(seq).trim();
schedulerDetails.setLastFileName(fileName);
paymentUploadEncription = new PaymentUploadEncription(schedulerDetails);
schedulerDetails = paymentUploadEncription.formPacket(list, fileName);
if (schedulerDetails.getStatus()==null?false:schedulerDetails.getStatus()) {
GenericExceptionLog.log("successfully Generated Uploaded File");
paymentDAO.insertScheduleDetails(schedulerDetails);
} else {
GenericExceptionLog.log("Unsuccessfull Uploaded File");
}
}
} catch (Exception e) {
GenericExceptionLog.exceptionJava(e, "Batch from Today "+System.currentTimeMillis()+" data to till now :: callSFTPBatchSecond()",
"HolcimSFTPPoolScheduler");
}
}
String getSequence(String fileType) {
paymentDAO = new PaymentDAO();
SchedulerDetails schedulDetails = paymentDAO.getScheduleDetails(fileType);
Integer seq = 0;
if (null != schedulDetails) {
seq = schedulDetails.getSequenceNumber() == null ? 0 : Integer.parseInt(schedulDetails.getSequenceNumber());
}
seq++;
String sequence = String.format("%03d", seq);
return sequence;
}
}
最佳答案
有多种方法可以做到这一点:
@ConditionalOnProperty(value = "jobs.enabled", matchIfMissing = true,havingValue = "true")
。您可以根据您的银行名称设置这些值。@Profile("hdfc")
创建职位资料关于java - 如何在 Spring Boot 中使用 cron 作业根据指定条件安排作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58264490/
有人可以解释一下 spring-boot-parent 和 spring-boot-starter-parent 之间的区别吗,正如我在下面附加的 GIT HUB 代码链接之一中看到的,他们为 spr
我有与 jersey 框架集成的 Spring Boot 应用程序。 现在,当我尝试运行该应用程序时,它只是停留在 Spring 启动徽标上,之后没有任何 react 。 我也尝试添加 -X ,但徽标
我指的是 Spring Boot 关于 的文档自动配置 和 执行器 模块: 自动配置: Spring Boot AutoConfiguration attempts to automatically
我正在尝试将 apache log4j 集成到我的 Spring boot 应用程序中。这是我的 build.gradle 文件: build.gradle buildscript { rep
使用 Spring Boot Maven 插件的以下命令在生产中启动 Spring Boot 应用程序是否是一个好主意或实践? mvn spring-boot:run 最佳答案 不,这是个坏主意。 您
据我所知,spring boot 和 spring session 为我们提供了一站式自动配置,但是当我的应用程序使用 session redis 和应用程序缓存 redis 时,不是同一个 redi
我希望使用Spring Boot创建一个新的Web应用程序。不幸的是,我的服务器在技术堆栈方面相当有限。它安装了Java 5。 谁能告诉我spring boot是否可以在Java 1.5上运行以及什么
我有3个实体 CarWash(设置Wash) Wash(car_wash_id FK到CarWash) WashComment(wash_id FK到Wash) 有什么办法可以写这个查询 @Qu
我一直在关注this文章。 我正在尝试在Spring-boot应用程序中优雅地处理gRPC错误,的主要目标是能够在gRPC客户端中获取错误状态。 在上面的文章之后,我坚持为异常添加拦截器。如何在Spr
我有一个要使用的自定义log4j布局插件。在IntelliJ中运行或与./gradlew bootRun一起运行时,插件可以正常工作。不使用./gradlew bootJar构建启动jar。 启用-D
我想在给定范围 (5001-5100) 的随机端口上启动 Spring Cloud 应用程序(Spring Boot 1.5.14,Spring Cloud Edgware.SR4)。我知道我们可以使
任何人都可以向我展示或指出不使用 spring boot gradle 插件的 spring boot gradle 项目。 我正在寻找类似不使用 gradle 插件的 spring boot sta
我当时尝试包含上述依赖项之一,但找不到任何区别: spring boot starter web:我可以看到 Flux 和 Mono 类并制作一个响应式(Reactive)休息 Controller
我们一直在为我们的应用程序使用 Springboot 1.X。 现在准备开始一些新的应用程序,想知道我们是应该使用 SpringBoot2.0 还是坚持使用 SpringBoot 1.X? 对一种方式
我希望记录应用程序正在加载 application-profile.propeties 或 application.yml。怎么做。在哪种方法中,我可以听取它并检测它是成功加载还是失败。 最佳答案 您
当我在 pom.xml 中添加简单的 spring-boot-starter-data-jpa 依赖项时,在 pom.xml 文件中出现错误。如果我删除该依赖项,则不会再有错误。我不确定为什么会发生这
我希望记录应用程序正在加载 application-profile.propeties 或 application.yml。怎么做。在哪种方法中,我可以听取它并检测它是成功加载还是失败。 最佳答案 您
我在网上看了很多关于 spring-boot-devtools 的文章和问题,但仍然无法弄清楚为什么它对我不起作用。每次运行我的应用程序时,我都会得到以下信息: 17:54:28.057 [main]
我正在尝试将现有的 Spring 应用程序移植到 Spring Boot。我不使用 spring-boot-starter-data-solr 启动器,但是我的类路径上有 apache solrj (
(这主要是一个历史问题。Pivotal 建议所有论坛讨论都在 StackOverflow 上进行,这就是我在这里问它的原因。) Spring Boot 项目用来证明将应用程序的类和依赖项从可执行 ja
我是一名优秀的程序员,十分优秀!