cron定时器_爬虫_获取每日星座运势

applicationContext_service.xml

<?xmlversion="1.0"encoding="UTF-8"?>

<beansxmlns="http://www.springframework.org/schema/beans"

   xmlns:context="http://www.springframework.org/schema/context"xmlns:p="http://www.springframework.org/schema/p"

   xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"

   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xmlns:task="http://www.springframework.org/schema/task"

   xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsd

   http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.0.xsd

   http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-4.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-4.0.xsd

   http://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-4.0.xsd

   http://www.springframework.org/schema/taskhttp://www.springframework.org/schema/task/spring-task-3.1.xsd">   

   <!--定时任务 -->

   <task:annotation-driven/>

   <context:annotation-config/>

   <beanclass="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>

   <context:component-scanbase-package="com.test"/>

</beans>

Star.java

publicenum Star

{

   Aries,//白羊座

   Taurus,//金牛座

   Gemini,//双子座

   Cancer,//巨蟹座

   Leo,//狮子座

   Virgo,//处女座

   Libra,//天秤座

   Scorpio,//天蝎座

   Sagittarius,//射手座

   Capricorn,//魔羯座

   Aquarius,//水瓶座

   Pisces//双鱼座

}

StarSign.java

publicclass StarSign

{

   private Stringstar;//星座

   private StringRemind;//提醒

   private StringTodo;//去做

   private StringdontTo;//别做

   public String getStar() {

      returnstar;

   }

   publicvoid setStar(Stringstar) {

      this.star =star;

   }

   public String getRemind() {

      returnRemind;

   }

   publicvoid setRemind(Stringremind) {

      Remind =remind;

   }

   public String getTodo() {

      returnTodo;

   }

   publicvoid setTodo(Stringtodo) {

      Todo =todo;

   }

   public String getDontTo() {

      returndontTo;

   }

   publicvoid setDontTo(StringdontTo) {

      this.dontTo =dontTo;

   }

   @Override

   public String toString() {

      return"StarSign[star=" +star + ", Remind=" +Remind + ", Todo="

             +Todo +",dontTo=" + dontTo + "]";

   }

}

TimingiesUtils.java

importjava.io.FileNotFoundException;

importjava.io.IOException;

importjava.util.Properties;

public classTimingiesUtils {

         public TimingiesUtils() {

         }

         private static Properties props = newProperties();

         static {

                  try {

                           props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("timing.properties"));

                  } catch(FileNotFoundException e) {

                           e.printStackTrace();

                  } catch (IOException e) {

                           e.printStackTrace();

                  }

         }

         public static String getValue(Stringkey) {

                  returnprops.getProperty(key);

         }

         public static voidupdateProperties(String key, String value) {

                  props.setProperty(key,value);

         }

}

timing.properties

timing=1


StarSignImpl.java

importorg.jsoup.Jsoup;

importorg.jsoup.nodes.Document;

importorg.springframework.scheduling.annotation.Scheduled;

importorg.springframework.stereotype.Component;

importcom.alibaba.fastjson.JSON;

importcom.cn.redis.utils.RedisUtil;


@Component //import org.springframework.stereotype.Component;

public classStarSignImpl{

         @Scheduled(cron = " 0 0 0 * * ?") //每天0点执行一次 

         public void myTest() {

                  if("1".equals(TimingiesUtils.getValue("timing")))

                  {

                           try {

                                    for (int i= 1; i < 13; i++)

                                    {

                                              StarSignstarSign = new StarSign();

                                              Stringurl = "http://astro.sina.cn/fortune/starent?type=day&ast=" + i;

                                              DocumentStarDoc = Jsoup.connect(url).get();

                                              Stringstar = StarDoc.select("p").get(0).text();

                                              Stringremind = StarDoc.select("p").get(12).text().substring(2);

                                              StringtoDo = StarDoc.select("p").get(13).text().substring(2);

                                              StringdontDo = StarDoc.select("p").get(14).text().substring(2);

 

                                              starSign.setStar(star.toString());

                                              starSign.setRemind(remind.toString());

                                              starSign.setTodo(toDo.toString());

                                              starSign.setDontTo(dontDo.toString());

 

                                              if(Star.Aries.equals(star))

                                              {

                                                       RedisUtil.setValue("Aries",JSON.toJSONString(starSign));

                                              }else if (Star.Aries.equals(star))

                                              {

                                                       RedisUtil.setValue("Aries",JSON.toJSONString(starSign));

                                              }

                                              switch(Star.values()[(byte) (i - 1)])

                                              {

                                              caseAries:

                                                       RedisUtil.setValue("Aries",JSON.toJSONString(starSign));

                                                       break;

                                              caseTaurus:

                                                       RedisUtil.setValue("Taurus",JSON.toJSONString(starSign));

                                                       break;

                                              caseGemini:

                                                       RedisUtil.setValue("Gemini",JSON.toJSONString(starSign));

                                                       break;

                                              caseCancer:

                                                       RedisUtil.setValue("Cancer",JSON.toJSONString(starSign));

                                                       break;

                                              caseLeo:

                                                       RedisUtil.setValue("Leo",JSON.toJSONString(starSign));

                                                       break;

                                              caseVirgo:

                                                       RedisUtil.setValue("Virgo",JSON.toJSONString(starSign));

                                                       break;

                                              caseLibra:

                                                       RedisUtil.setValue("Libra",JSON.toJSONString(starSign));

                                                       break;

                                              caseScorpio:

                                                       RedisUtil.setValue("Scorpio",JSON.toJSONString(starSign));

                                                       break;

                                              caseSagittarius:

                                                       RedisUtil.setValue("Sagittarius",JSON.toJSONString(starSign));

                                                       break;

                                              caseCapricorn:

                                                       RedisUtil.setValue("Capricorn",JSON.toJSONString(starSign));

                                                       break;

                                              caseAquarius:

                                                       RedisUtil.setValue("Aquarius",JSON.toJSONString(starSign));

                                                       break;

                                              casePisces:

                                                       RedisUtil.setValue("Pisces",JSON.toJSONString(starSign));

                                                       break;

                                              default:

                                                       break;

                                              }

                                    }

                                    System.out.println(RedisUtil.getByKey("Pisces"));

                           } catch (Exceptione) {

                                    e.printStackTrace();

                           }

                  }

         }

}

好的,根据您的问题,我可以给出一个参考答案: Java中可以使用Quartz Cron表达式生成器来生成Cron表达式。下面是一个示例代码: ```java import org.quartz.CronExpression; public class CronExpressionGenerator { public static void main(String[] args) { // 根据秒生成cron表达式,这里以每分钟的第30秒为例 String cronExpression = generateCronExpression("30 * * * * ?"); System.out.println(cronExpression); // 输出:0 0/1 * 1/1 * ? * } /** * 根据给定的时间表达式生成Cron表达式 * @param timeExpression 时间表达式,格式为 "ss mm HH dd MM ? yyyy" * @return Cron表达式 */ public static String generateCronExpression(String timeExpression) { // 将时间表达式转换为CronExpression对象 CronExpression cronExpression = null; try { cronExpression = new CronExpression(timeExpression); } catch (Exception e) { e.printStackTrace(); } // 根据CronExpression对象生成Cron表达式 return cronExpression == null ? null : cronExpression.getCronExpression(); } } ``` 代码中使用了Quartz框架中的CronExpression类来将时间表达式转换为Cron表达式。需要注意的是,时间表达式的格式为 "ss mm HH dd MM ? yyyy",其中ss表示秒,mm表示分,HH表示小时,dd表示天,MM表示月,yyyy表示年。而Cron表达式的格式为 "秒 分 时 日 月 周年",其中周年可以省略。 以上代码只是一个简单示例,您可以根据自己的需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值