123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- login(`admin, `123456);
- use fundit::task_fundPerformance;
- use fundit::task_portfolioPerformance;
- use fundit::task_weeklyPerformance;
- use fundit::task_monthlyPerformance;
- /*
- * 定时任务
- *
- * 查询任务运行; getRecentJobs();
- * 查询任务列表:getScheduledJobs('daily_%');
- * 删除任务:deleteScheduledJob('monthly_fund_ranking000');
- *
- *
- * SELECT jobId, (endTime - startTime)/1000 as sec, errorMsg from getRecentJobs()
- */
- /* ------------- DAILY JOBS ---------------------------*/
- // index and factor calculations go first
- scheduleJob('daily_market_index_performance', "Market Index return and indicator calculation", calFundPerformanceTask{'MI', now().temporalAdd(-3d)}, 22:00m, today(), today()+30, 'D');
- scheduleJob('daily_fundit_index_performance', "FundIT Index return and indicator calculation", calFundPerformanceTask{'FI', now().temporalAdd(-3d)}, 22:00m, today(), today()+30, 'D');
- scheduleJob('daily_factor_performance', "Factor nav, return and indicator calculation", CalFactorPerformanceTask{now().temporalAdd(-3d)}, 23:00m, today(), today()+30, 'D');
- // standard return and indicator calculation
- scheduleJob('daily_mutual_fund_performance', "Mutual fund return and indicator calculation", calFundPerformanceTask{'MF', now().temporalAdd(-3d)}, 00:00m, today(), today()+30, 'D');
- scheduleJob('daily_hedge_fund_performance', "Hedge fund return and indicator calculation", calFundPerformanceTask{'HF', now().temporalAdd(-3d)}, 00:30m, today(), today()+30, 'D');
- scheduleJob('daily_portfolio_performance', "Portfolio nav, return and indicator calculation", CalPortfolioPerformanceTask{now().temporalAdd(-3d)}, 01:00m, today(), today()+30, 'D');
- /* ------------- WEEKLY JOBS ---------------------------*/
- // RBSA calculation
- scheduleJob('weekly_fund_rbsa', "Fund RBSA calculation", CalEntityRBSATask{'MF', NULL, now().temporalAdd(-7d)}, 07:00m, today(), today()+30, 'W', [6, 0]);
- scheduleJob('weekly_portfolio_rbsa', "Portfolio RBSA calculation", CalEntityRBSATask{'PF', NULL, now().temporalAdd(-7d)}, 07:30m, today(), today()+30, 'W', [6, 0]);
- // Category Average index weekly NAV
- scheduleJob('weekly_category_avg_nav', "Category Average NAV calculation", CalCategoryAverageNavTask{now().temporalAdd(-7d)}, 08:00m, today(), today()+30, 'W', [6, 0]);
- // BFI MATCHING HERE
- scheduleJob('weekly_fund_bfi_matching', "Fund bfi matching", MatchEntityBFITask{'MF', now().temporalAdd(-3d)}, 01:30m, today(), today()+30, 'W', [6, 0]);
- scheduleJob('weekly_portfolio_bfi_matching', "Portfolio bfi matching", MatchEntityBFITask{'PF', now().temporalAdd(-3d)}, 06:00m, today(), today()+30, 'W', [6, 0]);
- // BFI indicator calculation
- scheduleJob('weekly_fund_bfi_indicator', "Fund BFI indicator calculation", calEntityBfiIndicatorTask{'MF', now().temporalAdd(-3d)}, 07:00m, today(), today()+30, 'W', [6, 0]);
- scheduleJob('weekly_portfolio_bfi_indicator', "Portfolio BFI indicator calculation", calEntityBfiIndicatorTask{'PF', now().temporalAdd(-3d)}, 08:00m, today(), today()+30, 'W', [6, 0]);
- /* ------------- MONTHLY JOBS ---------------------------*/
- // manager & company nav
- scheduleJob('monthly_manager_nav', "Manager NAV calculation", CalMCNavTask{'PL', now().temporalAdd(-1m).month(), true}, 18:00m, today(), today()+30, 'M', [2, 3]);
- scheduleJob('monthly_company_nav', "Company NAV calculation", CalMCNavTask{'CO', now().temporalAdd(-1m).month(), true}, 20:00m, today(), today()+30, 'M', [2, 3]);
- // manager & company indicator
- scheduleJob('monthly_manager_indicator', "Manager indicator calculation", CalMCIndicatorTask{'PL', now().temporalAdd(-1m).month(), true}, 22:00m, today(), today()+30, 'M', [2, 3]);
- scheduleJob('monthly_company_indicator', "Company indicator calculation", CalMCIndicatorTask{'CO', now().temporalAdd(-1m).month(), true}, 23:00m, today(), today()+30, 'M', [2, 3]);
- // manager BFI matching
- scheduleJob('monthly_manager_bfi_matching', "Manager bfi matching", MatchManagerBFITask{now().temporalAdd(-1m).month(), true}, 00:00m, today(), today()+30, 'M', [3, 4]);
- // fund rankings
- scheduleJob('monthly_fund_ranking', "Fund PBI ranking calculation", CalEntityRankingTask{'MF', now().temporalAdd(-1m).month(), true}, 19:00m, today(), today()+30, 'M', [5, 6]);
- scheduleJob('monthly_fund_bfi_ranking', "Fund BFI ranking calculation", CalEntityBfiRankingTask{'MF', now().temporalAdd(-1m).month(), true}, 20:00m, today(), today()+30, 'M', [5, 6]);
- // portfolio rankings (strategy, substrategy, bfi included)
- scheduleJob('monthly_portfolio_ranking', "Portfolio ranking calculation", CalRelativeRankingTask{'PF', NULL, now().temporalAdd(-1m).month(), true}, 21:00m, today(), today()+30, 'M', [5, 6]);
|