2012-02-04 38 views
6

Tôi đang sử dụng System.Runtime.Caching.MemoryCache để mô phỏng tác vụ lặp lại trên ứng dụng .NET MVC đang chạy được triển khai trên AppHarbor.Mô phỏng tác vụ nền trên AppHarbor

Entries trong bộ nhớ cache được bổ sung bằng một CacheItemPolicy chứa một AbsoluteExpiration bù đắp và một RemovedCallback mà các cuộc gọi một phương pháp và retriggers các thêm của mặt hàng đó trong bộ nhớ cache (như mô tả here)

MemoryCache được phổ biến lần đầu tiên trong Application_Start. Nó hoạt động tốt tại địa phương, nhưng dường như không hoạt động sau khi triển khai trên AppHarbor (cũng đã thử với HttpRuntime.Cache, cùng một kết quả).

Ứng dụng của tôi đang chạy dưới tài khoản CANOE (miễn phí) trên AppHarbor chỉ có một công nhân. Điều này có nghĩa là tôi sẽ không thể mô phỏng tác vụ nền cho đến khi tôi nâng cấp lên một số gói trả phí không?

Cảm ơn!

Trả lời

0

Tôi không nghĩ rằng việc nâng cấp sẽ giúp ích, họ đang làm việc để bổ sung thêm các công việc nền cho AppHarbor nhưng theo hiểu biết của tôi thì chúng vẫn có sẵn.

Điều gì về việc sử dụng dịch vụ như https://stillalive.com/ để định kỳ nhấn một trang trên trang web của bạn, sau đó xoay vòng một chuỗi mới và bắt đầu chạy tác vụ nền của bạn? Nó có sẵn như là một add-on miễn phí.

Tôi đã nghĩ đến việc làm điều gì đó như thế này trong khi đợi chức năng tác vụ nền khả dụng.

+0

Tôi đã nghĩ đến việc bỏ phiếu một trang từ bên ngoài, nhưng nhiệm vụ của tôi mất một thời gian để hoàn thành. Thời gian chờ AppHarbor yêu cầu sau 10 giây hoặc lâu hơn và tôi không biết liệu hành động đó vẫn được thực thi hay không. –

4

Ứng dụng của bạn phải có khách truy cập mỗi lần trong một thời gian để tính năng này hoạt động. Khác với StillAlive, Pingdom cũng là một đặt cược tốt để tạo yêu cầu cho ứng dụng của bạn. Bạn cũng nên xem MomentApp. Chúng tôi hy vọng sẽ sớm có các tác vụ nền.

+0

làm cách nào bạn có thể đề xuất việc theo dõi là phương tiện để thực hiện chức năng? có một tính năng dựa vào tình trạng giám sát có vẻ thực sự là nghiệp dư đối với tôi. Bạn có thể trả lời câu hỏi tại sao gọi lại bộ đệm ẩn không được gọi đúng không? cảm ơn bạn. – nakhli

+0

@ChakerNakhli Tôi không biết gọi lại bộ nhớ cache của bạn không được gọi, đó là ứng dụng của bạn. Pingdom và StillAlive tạo yêu cầu cho ứng dụng của bạn để gọi lại bộ nhớ cache có cơ hội được kích hoạt. cảm ơn bạn. – friism

+1

Đầu tiên, tôi thực sự yêu appharbor. Đó là một ý tưởng tuyệt vời. Tuy nhiên, giám sát có nghĩa là * theo dõi trạng thái của ứng dụng * và đo hiệu suất của nó. Bạn nên * không bao giờ * có logic ứng dụng của bạn dựa vào cách giám sát được thực hiện hoặc thực hiện. Bạn nên giảm thiểu hiệu ứng đầu dò; không dựa vào nó. Tôi dựa vào việc theo dõi, điều đó có nghĩa là nếu các ops quyết định thay đổi nó, họ sẽ đơn giản phá vỡ ứng dụng! Không chấp nhận được trong đời thực. Xin lỗi nhưng khuyến khích mọi người sử dụng giám sát để thực hiện công nhân làm cho appharbor xuất hiện như một món đồ chơi cho nghiệp dư và không phải là một nền tảng vững chắc cho các ứng dụng thực tế đời sống. – nakhli

Các vấn đề liên quan