accessToken.js 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. 'use strict';
  2. const Subscription = require('egg').Subscription;
  3. class AccessToken extends Subscription {
  4. static get schedule() {
  5. return {
  6. interval: '7100s', // 7200-100 秒间隔 接近2个小时执行一次
  7. type: 'all', // 指定所有的 worker 都需要执行
  8. };
  9. }
  10. // subscribe 是真正定时任务执行时被运行的函数
  11. async subscribe() {
  12. // this.service.dataToGBService.dataToGB();
  13. const config = this.ctx.app.config.wechat_config;
  14. const url = config.getAccessToken.replace('APPID', config.appId)
  15. .replace('APPSECRET', config.appSecret);
  16. const res = await this.ctx.curl(url, {
  17. dataType: 'json',
  18. });
  19. this.app.redis.set('access_token', res.data.access_token,
  20. 'EX', 7100);
  21. const jsUrl = config.getJsApiTicket.replace('ACCESS_TOKEN',
  22. res.data.access_token);
  23. const jsRes = await this.ctx.curl(jsUrl, {
  24. dataType: 'json',
  25. });
  26. this.app.redis.set('ticket', jsRes.data.ticket,
  27. 'EX', 7100);
  28. }
  29. }
  30. module.exports = AccessToken;