2014-12-02 38 views
0

我正在开发具有多个服务和Quartz Jobs的grails应用程序。在Grails Quartz Jobs中,我注入了一些服务,它们向服务器发出请求并根据从服务器返回的结果执行某些操作。在某些服务出现故障时在Grails顶部显示状态消息

现在,有时该服务器由于某些原因而停止运行,并且与该服务器通信的服务会发生connectionException。所有这些都发生在后端,用户不知道它。我想在服务遇到服务器故障时向GSP顶部显示消息给用户(无论当前用户是哪个GSP页面)。

当我的服务开始与服务器通信时(服务器启动时),该消息将消失。据我所知,FLASH可以在这里使用,但是在单个请求中仍然存在,但是我想显示这条消息直到服务器变为可访问。

在Grails中我有什么不同的选择来实现这一点?什么是最好的选择?

感谢提前:)

回答

1

创建,保持挥发性统计特性的状态服务,将其设置为反映状态时,它的变化和布局/ GSP的使用标签库来读取状态,包括它。

这里是

首先服务的一个很简单的例子:

// MyStatusService 
package com.example 

class MyStatusService { 
    boolean isServerDown = false 
    ... 
} 

那么你的代码中:

// From within your code, setting the status 
def myStatusService // assumes you can inject it 
... 
myStatusService.isServerDown = true // or false depending on your code 
... 

标签库:

// MyStatus TagLibrary 
package com.example 

class MyStatusTagLib { 
    def myStatusService 
    static namespace = "myStatus" 

    def checkStatus = { attrs -> 
    if (myStatusService.isServerDown) { 
     out << "Server is down message here." 
    } 
    } 
} 

最后在y我们的GSP甚至你的布局:

<myStatus:checkStatus /> 

希望有帮助。

+0

感谢您的立即回复。这似乎是一个不错的选择。让我试试这个 – 2014-12-02 11:17:00