Я изучаю Eclipse Job API, но не смог найти документацию о том, как использовать семейный класс с примером. Я пытаюсь создать 3 задания, в которых первые два принадлежат к одной семье, а другая принадлежит другой семье. Я не могу создать работу, которая может относиться к определенной семье.Понимание семейства вакансий Eclipse
код приведен ниже: Первый файл описания, содержащий работы
public class Jobsclass{
public static void eclipsejobsfamily() {
Job MyFirstJob = new Job("My First Job") {
protected IStatus run(IProgressMonitor monitor) {
System.out.println("Hello World (1st from a background First job)");
return Status.OK_STATUS;
}
public boolean belongsTo(Object family) {
// TODO Auto-generated method stub
if (Jobsutil.MY_FAMILY.equals(family)) { return true; }
return false;
}
};
Job MySecondJob = new Job("My Second Job") {
protected IStatus run(IProgressMonitor monitor) {
System.out.println("Hello World (2nd from a background Second job)");
return Status.OK_STATUS;
}
public boolean belongsTo(Object family) {
// TODO Auto-generated method stub
if (Jobsutil.MY_FAMILY.equals(family)) { return true; }
return false;
}
};
Job MyThirdJob = new Job("My First Job") {
protected IStatus run(IProgressMonitor monitor) {
System.out.println("Hello World (1st from a background First job)");
return Status.OK_STATUS;
}
public boolean belongsTo(Object family) {
// TODO Auto-generated method stub
if (Jobsutil.THE_FAMILY.equals(family)) { return true; }
return false;
}
};
MyFirstJob.wakeUp();
MyFirstJob.schedule();
MySecondJob.setPriority(Job.SHORT);
MySecondJob.schedule();
MyThirdJob.wakeUp();
MyThirdJob.schedule();
}
protected IStatus run(IProgressMonitor monitor) {
// TODO Auto-generated method stub
return null;
}
}
FILE 2:
public class Jobsutil {
public static final String MY_FAMILY = "myJobFamily";
public static final String THE_FAMILY = "theOtherFamily";
}
public JobAction() {
}
THIRD Class Method RUN():
/**
* The action has been activated. The argument of the
* method represents the 'real' action sitting
* in the workbench UI.
* @see IWorkbenchWindowActionDelegate#run
*/
public void run(IAction action) {
MessageDialog.openInformation(
window.getShell(),
"LearnJobAPI",
"First example");
if (Jobsutil.MY_FAMILY.equals("myJobFamily")){
}
//Job.getJobManager().find("MY_FAMILY");
//Job.getJobManager().wakeUp("MY_FAMILY");
// Jobsclass.eclipsejobsfamily();
this.manager.wakeUp(Jobsutil.MY_FAMILY);
Job[] jobscreated= this.manager.find(Jobsutil.MY_FAMILY);
Jobsclass.eclipsejobsfamily();
}
Спасибо заранее. Пожалуйста, помогите мне понять, как контролировать работу с использованием семьи.
Спасибо за ваш ответ. После попытки я мог получить это, но то, чего я не смог получить. Как запустить эту работу, используя семейство «MY_FAMILY». Как запускать задания из семьи «A» или задания из семьи «B». –
Добавлен класс работы с параметром семьи –
Я смог понять предлагаемый код и реализовать его. Спасибо за помощь. Но все же моя проблема заключается в том, что я создал и запланировал 3 задания (семья A, семья B, семья B). Как я могу запускать только задания, принадлежащие семье B. Я создал что-то вроде этого, но он не работает: private IJobManager manager = Platform.getJobManager(); и manager.wakeUp ("B"); этот метод одобрен или, пожалуйста, предлагайте. Большое спасибо заблаговременно –