簡體   English   中英

TimerTask 未執行

[英]TimerTask not executing

我正在編寫一個不和諧的機器人,並想在某個時間運行一個解除禁令。 但是,即使日期在未來,也不會調用 TimerTask。 如果日期在過去,timertask 調用即時。 我試圖搜索一些數據以查看日期是否錯誤但正確。

我想叫它一次。

        System.out.println("started");
        System.out.println(date);
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                System.out.println("called");
                user.openPrivateChannel().complete().sendMessage(
                        "**-Unban-**" +
                                "\n" +
                                "Du wurdest entbannt!"
                ).queue();
                guild.removeRoleFromMember(user.getId(), guild.getRoleById("690579286582624276")).queue();
                guild.addRoleToMember(user.getId(), guild.getRoleById("688733671104053327")).queue();
            }
        }, date);

控制台輸出:

started
Fri Mar 20 17:21:55 UTC 2020

希望你會發現!

import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

public class Main {
    Date date = new Date();// Initialize it as per your requirement
    Timer timer = new Timer();
    TimerTask task = new TimerTask() {
        public void run() {
            System.out.println("called");
            //...
            timer.cancel();
        }
    };

    public void start() {
        timer.schedule(task, date);
    }

    public static void main(String[] args) {
        Main timer = new Main();
        timer.start();
    }
}

使用定時器應該做下一個

以固定速率調度

例子

reloj.scheduleAtFixedRate(new Reloj(), 0, 1000);

你可以做下一個

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package javaapplication11;

import java.util.TimerTask;

/**
 *
 * @author Sem-6-INGENIERIAINDU
 */
public class Reloj extends TimerTask{

    @Override
    public void run() {
      // Your code
    }

}

該類實現計時器 /* * 要更改此許可證標題,請在項目屬性中選擇許可證標題。 * 要更改此模板文件,請選擇工具 | 模板 * 並在編輯器中打開模板。 */ 包 javaapplication11;

import java.util.Timer;

/**
 *
 * @author Sem-6-INGENIERIAINDU
 */
public class JavaApplication11 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
      Timer reloj=new Timer();
      reloj.scheduleAtFixedRate(new Reloj(), 0, 1000);

    }

}

結果是

運行:Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo Corriendo BUILD 1 分鍾建造時間:10 秒

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM