Skip to Content
0

@schedule in spring-boot does not work in Java instance in sap cloud platform

May 12, 2017 at 05:14 AM

77

avatar image

Dear all,

I found that In SAP Cloud Platform, using spring-boot version 1.3.5 if I want to have a scheduled task using @schedule annotation, it doesn't work in HCP.

However, the same code works in localhost using my own computer.

I'm wondering whether there is anything wrong with my code or configuration file in the project or HCP simply doesn't support schedule in Spring-boot?

Here are the code snippets:

Main function:

package com.sap.job;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@EnableScheduling
public class Application {
    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class);
    }
}


Scheduled Job

package com.sap.job;

import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class ScheduledTasks {
	private static final Logger log = LoggerFactory.getLogger(ScheduledTasks.class);
	private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

	@Scheduled(fixedRate = 10000)
	public void updateDateAvailable() throws ParseException {
		log.info("The time is now {}", dateFormat.format(new Date()));
		long time = System.currentTimeMillis();
		Date date = new Date();
		long minus = 86400000L;
		long endTime = new Date().getTime();
		long startTime = endTime-minus;
		log.info("endTime:"+endTime);
		log.info("startTime:"+startTime);
		log.info("date:"+date.toString());
	}	
}

The result is that I cannot find any log in HCP.

Also trying to insert a record to DB in a schedule doesn't work while it works in localhost.

Has anyone met the issue before? Thanks.

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

1 Answer

Best Answer
Ziyi Jiang
May 12, 2017 at 07:05 AM
0

I found the solution. It seems that in log information defined in code is not contained in HCP's log file. But the schedule function works fine.

Share
10 |10000 characters needed characters left characters exceeded