我想監視服務器(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