public class BackupMaker
{
public BackupMaker(String task_handler_url, String task_queue_name,
String task_name)
{
final Queue q = (task_queue_name == null) ? QueueFactory
.getDefaultQueue() : QueueFactory.getQueue(task_queue_name);
final TaskOptions task = TaskOptions.Builder.withUrl(task_handler_url)
.taskName(task_name);
q.add(task);
}
}
..............
public class BackupMakerTaskEntry extends HttpServlet
{
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Task is running !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
res.getWriter().print("hello!");
}
}
..............
private void create_backup_task()
{
final String task_handler_url = "/data_backup/task_entry";
final String task_queue_name = null; // Use 'Default' queue.
final String task_name = "Test";
new BackupMaker(task_handler_url, task_queue_name, task_name);
}
上面的代码将创建一个google任务应用 问题是,在GAE的开发服务器上永远不会执行任务。
添加任务后,重新添加它会产生一个异常'TaskAlreadyExistsException',这意味着正在添加任务,但根本不会触发。
我使用的是Win7 64位Eclipse Indigo(4.7)JDK 6u26和Eclipse的最新GAE + GWT插件/ lib。
有什么想法吗?它只发生在我身上吗?
答案 0 :(得分:3)
我记得在开发环境中你必须从app console手动运行任务。它们不会自动运行。