Tôi đang chạy một ứng dụng django trên xoắn sử dụng các tập lệnh django-on-twisted từ this site.Máy chủ bị treo đột ngột gặp sự cố khi chạy django
Tất cả các yêu cầu được phục vụ bởi máy chủ nginx để đảo ngược proxy có liên quan đến yêu cầu bị xoắn. Tôi có một thiết lập url cho một API, mà về cơ bản chỉ nhận được yêu cầu và thực hiện một số xử lý trên các tham số nhận được trước khi gửi một phản hồi. Tuy nhiên, khi một khách hàng cụ thể đang nhấn api, máy chủ bị xoắn chỉ tắt. Đã dán bên dưới là nhật ký Nginx:
the.ip.of.client - - [21/Apr/2012:11:30:36 -0400] "GET /api/url/?get=params&more=params HTTP/1.1" 499 0 "-" "Java/1.6.0_24"
Nhật ký xoắn không hiển thị gì ngoài những điểm dừng xoắn tại thời điểm này. Bởi mã lỗi 499, tôi giả sử rằng khách hàng đóng kết nối bất ngờ, mà tôi không có vấn đề với. Liệu khách hàng có nhận được phản hồi hay không không quan trọng đối với tôi. Dưới đây là chế độ xem django có liên quan:
def api_url(request):
if request.GET:
get_param = request.GET.get('get', [''])[0]
more_param = request.GET.get('more', [''])[0]
#some processing here based on the get params
return HttpResponse('OK')
else:
raise Http404
Yêu cầu từ khách hàng là yêu cầu hợp lệ và không ảnh hưởng đến việc xử lý theo cách bất lợi. Tôi đã thử nghiệm nó từ vỏ. Khi tôi đã thử nó trên máy chủ phát triển django, nó bị rơi theo cùng một cách quá mà không để lại bất kỳ dấu vết nhận được yêu cầu. Mọi thứ hoạt động hoàn hảo tốt khi thử nghiệm nó từ trình duyệt. Ngoài ra, máy chủ xoắn hoạt động tốt cho tất cả các trường hợp sử dụng thông thường. Đây là lần đầu tiên tôi gặp phải vấn đề với nó. Bất kỳ trợ giúp hoặc con trỏ sẽ được đánh giá cao.
gì "tắt" nghĩa là gì? Nó có thoát ra không? Có một tín hiệu khiến nó thoát ra không? –
Máy chủ bị xoắn không ghi bất kỳ thứ gì vào nhật ký. Tôi khá chắc chắn nó không phải là một lối ra sạch. Nó chỉ ngừng hoạt động. Bất kỳ ý tưởng làm thế nào tôi có thể có thể bắt tín hiệu thoát? – tapan
Nếu bạn đang sử dụng bash, thì '$?' Sẽ trợ giúp. Từ trang bash man: **? Mở rộng đến trạng thái thoát của đường dẫn nền trước được thực thi gần đây nhất. ** Vì vậy, ví dụ: 'twistd ...; echo $? ' –