Tôi có một vấn đề thú vị cần giải quyết. Một trong những khách hàng của tôi đã giúp tôi phát triển một chương trình phân tích chứng khoán với gần 50 năm dữ liệu chứng khoán cho gần một nghìn ký hiệu. Tôi đã phát triển một loạt các bộ lọc được áp dụng vào bất kỳ ngày cụ thể nào để xem liệu có bất kỳ điều gì rơi vào một giao dịch hay không.Kiến trúc tốt nhất cho truy vấn 30 giờ
Chúng tôi muốn chạy bộ lọc này cho mỗi ngày dữ liệu chúng tôi có cho mỗi cổ phiếu. Về cơ bản, báo cáo loại ngày bắt đầu và kết thúc của bạn. Tuy nhiên phải mất 6 phút để lọc mỗi tuần cho mỗi biểu tượng. Chúng tôi đang tính toán khoảng 40 giờ để chạy báo cáo trên toàn bộ tập dữ liệu của chúng tôi.
Yêu cầu ghi đè là khách hàng của tôi có thể thực hiện bất kỳ thứ gì trong ứng dụng từ bất kỳ máy tính nào (anh ấy đi rất nhiều), vì vậy chúng tôi dựa trên trình duyệt.
Để giải quyết vấn đề này, tôi đã viết một phương pháp không đồng bộ chạy báo cáo này, tuy nhiên bộ đếm thời gian không hoạt động của hồ bơi ứng dụng sẽ giết công việc. Tôi không muốn phải bắt đầu điều chỉnh thời gian chờ cho toàn bộ ứng dụng để hỗ trợ báo cáo này (chúng tôi sẽ thực hiện rất nhiều điều này vì mọi scenerio cổ phiếu sẽ cần phải chạy trên toàn bộ tập dữ liệu của chúng tôi để phân tích trước khi nó được sử dụng cho hoạt động giao dịch).
Có ai có bất kỳ ý tưởng chung hoặc trải nghiệm nào với kiến trúc web sẽ hỗ trợ quá trình không đồng bộ cực dài không?
Cảm ơn
+1 cho Dịch vụ Windows. Công việc này không thuộc về khối lượng công việc của ứng dụng web. –
+1 yep, đó là những dịch vụ dành cho, 100% đã đồng ý, đưa nó vào một ứng dụng web chỉ là một hack – andy
Kieren, Cảm ơn bạn đã trả lời. Vâng, tôi nghĩ bạn đã chạm vào móng tay ngay trên đầu và cách tiếp cận này phù hợp với phần còn lại của kiến trúc của chúng tôi. Chúng tôi đã chạy các dịch vụ Windows để quản lý tải xuống báo giá lịch sử khi thị trường đóng cửa. Ngoài ra, thời gian chờ duy nhất tôi sẽ phải quản lý là CommandTimeout của SQL đơn giản là đủ. Tôi có thể cho phép người dùng nhập thông số cho báo cáo của họ, lưu trữ chúng trong cơ sở dữ liệu và kéo chúng lên và chạy chúng trong ngữ cảnh của dịch vụ. Tôi biết rằng yêu cầu này sẽ không được giải quyết bởi một trang web. Cảm ơn bạn - Bravo! – MikeMalter