环境:Linux 上的 Java EE 7、Glassfish 4、MySQL 5.7,在具有 512MB 内存的 ARM7 服务器上(应用程序必须节省内存!) 应用程序:一个数据库驱动的 Java Web 应用程序,服务于使用默认浏览器运行 Android 4.0 的多个 Android 平板电脑客户端.
客户端将有两种基本用户类型:生产者和消费者。生产者生成显示在消费者浏览器上的任务。当生产者创建一个新任务时,如果他们的任务列表(viewTaskList.jsp)显示为“PENDING”状态,它应该立即显示在所有登录的消费者的浏览器上。消费者从任务列表中选择任务并处理它们(doTask.jsp)。当消费者选择任务时,它应该在所有其他任务列表显示上标记为“正在工作”并且不可选择。如果打开任务的消费者单击取消按钮,则所有任务列表上的任务状态应更改为“待处理”。当一个任务完成时,它会被标记为这样,并且应该从任何显示任务列表视图的消费者浏览器中消失。
Task entity class: (fragment)
public class Task {
private int taskId;
private String taskDescription;
private boolean isComplete;
private String completerId; // the userId of the Consumer who marked this as Complete (foreign key);
private boolean isLocked;
private String lockId; // the userId of a Consumer who has this task open;
.
.
.
}
我正在学习Java EE编程,还没有精通JPA和JSF,但了解基本概念。从我在这里和其他地方看到的情况来看,我认为 Comet 和/或 JQuery/AJAX 可以帮助我解决这个问题,但我不知道如何使用其中任何一个。我需要有关如何让数据库更新导致消费者显示发生更改的基本指导,而无需消费者请求更改。解决方案的一部分是否向 MySQL 数据库添加了一个或多个触发器?