我想监视服务器(tomcat)是否运行或没有定期运行。我是以独立应用程序的形式运行。我想每隔30分钟定期调用一次服务器监视程序。 。如何通过使用Java使用java监视线程
0
A
回答
1
你应该使用的ExecutorService和任务来完成:
class MyTask implements Runnable {
@Override
public void run() {
//do your work here
}
}
ScheduledExecutorService service = Executors.newScheduledThreadPool(NUMBER_OF_THREADS);
service.scheduleAtFixedRate(new MyTask(), 0, 30, TimeUnit.MINUTES);
0
检查出的Nagios。它是一个开源的监控服务,并且还提供了Java API。这是监视服务器的最佳方式。
但是Nagios在实施方面需要一些努力。如果这不是你的选择,那么是去ScheduledExecutorservice。
0
有很多方法可以做到这一点,但我会推荐硒这种事情。 http://docs.seleniumhq.org/projects/webdriver/
然后,您不仅可以检查服务器是否响应,还可以检查它是否显示正确的内容。
http://docs.seleniumhq.org/docs/03_webdriver.jsp#introducing-the-selenium-webdriver-api-by-example
package org.openqa.selenium.example;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
public class Selenium2Example {
public static void main(String[] args) {
while (1){
test();
Thread.sleep(30L*60L*1000L); //sleep for 30 mins
}
}
public static void test(){
// Create a new instance of the Firefox driver
// Notice that the remainder of the code relies on the interface,
// not the implementation.
WebDriver driver = new FirefoxDriver();
// And now use this to visit Google
driver.get("http://www.google.com");
// Alternatively the same thing can be done like this
// driver.navigate().to("http://www.google.com");
// Find the text input element by its name
WebElement element = driver.findElement(By.name("q"));
// Enter something to search for
element.sendKeys("Cheese!");
// Now submit the form. WebDriver will find the form for us from the element
element.submit();
// Check the title of the page
System.out.println("Page title is: " + driver.getTitle());
// Google's search is rendered dynamically with JavaScript.
// Wait for the page to load, timeout after 10 seconds
(new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver d) {
return d.getTitle().toLowerCase().startsWith("cheese!");
}
});
// Should see: "cheese! - Google Search"
System.out.println("Page title is: " + driver.getTitle());
//Close the browser
driver.quit();
}
}
+0
也使用'WebDriver driver = new HtmlUnitDriver();'如果你不想安装浏览器来运行Selenium – 2013-04-24 12:36:32
相关问题
- 1. Java线程监视其他线程
- 2. 监视线程
- 3. java线程中的“监视器”
- 4. 监视java线程执行的工具
- 5. 监视eclipse中的java线程
- 6. Java监视器和线程并发性
- 7. 线程监视C#
- 8. .net线程监视
- 9. 监视.NET线程
- 10. 使用java线程的多监视器同步
- 11. 使用监视器类同步Java中的线程
- 12. Java应用程序监视
- 13. boost :: asio,线程池和线程监视
- 14. 监视线程创建
- 15. 在JVM中监视线程
- 16. 线程等待监视器
- 17. 完全暂停线程监听用Java
- 18. Java线程监视。如何找出非守护进程活动线程?
- 19. FIN_WAIT Java监视应用程序问题
- 20. Java Web应用程序:监视进度
- 21. Python的线程:监视线程和线程完成
- 22. 使用Java监视服务监视子文件夹
- 23. 让我的头绕过Java线程,监视器等......
- 24. 如何启动/停止和监视Java线程?
- 25. Java并发 - singleton设计与监视线程
- 26. 如何监视内存的Java线程堆栈
- 27. 在Java中实现一个监视器线程
- 28. 如何在Java中监视线程的状态?
- 29. 在生产Java应用程序中使用JMX监视什么?
- 30. 使用心跳信号的c中的线程监视
使用'Executors.newSingleThreadedScheduledExecutor'和'schedule'它的任务。 – 2013-04-24 12:29:40
然后使用Apache HTTP客户端库调用Tomcat服务器,接收响应并实现服务器是否正在运行。 – 2013-04-24 12:31:42