2010-06-24 31 views
12

Giả sử tôi là tân binh lớn, - Tôi đang chạy yêu cầu curl qua cron cứ 15 phút một lần. - Curl về cơ bản được sử dụng để tải một trang web (php) mà đưa ra một số lập luận, đóng vai trò như một kịch bản như:Làm thế nào để chạy nhiều yêu cầu curl, xử lý tuần tự?

curl http://mysite.com/?update_=1

Những gì tôi muốn đạt được là để chạy một "kịch bản" sử dụng curl này kỹ thuật, - mỗi khi tập lệnh khác chạy - trước khi tập lệnh khác chạy

Tôi đã đọc rằng curl chấp nhận nhiều url trong một lệnh nhưng tôi không chắc liệu điều này có xử lý tuần tự liên tục hay trong "song song ".

Trả lời

22

Nó sẽ rất có thể quá trình chúng liên tục (tại sao không chỉ kiểm tra nó). Nhưng bạn cũng có thể làm điều này:

1) tạo ra một tập tin gọi là curlrequests.sh 2) đặt nó trong một tập tin như vậy:

curl http://mysite.com/?update_=1 
curl http://mysite.com/?update_=3 
curl http://mysite.com/?update_=234 
curl http://mysite.com/?update_=65 

3) lưu các tập tin và làm cho nó thực thi với chmod:

chmod +x curlrequests.sh 

4) chạy tập tin của bạn:

./curlrequests.sh 

hoặc

/path/to/file/curlrequests.sh 

Như một mặt lưu ý, bạn có thể yêu cầu chuỗi với & &, như thế này:

curl http://mysite.com/?update_=1 && curl http://mysite.com/?update_=2 && curl http://mysite.com/?update_=3 

Và thực hiện song song sử dụng &:

curl http://mysite.com/?update_=1 & curl http://mysite.com/?update_=2 & curl http://mysite.com/?update_=3 
+0

Timoty, sẽ bị xích như curl http://mysite.com/?update_=1 && curl http://mysite.com/?update_=2 && ...... thực hiện tuần tự? – Riccardo

+0

Có, trong hầu hết các trường hợp, chúng sẽ xảy ra, nhưng nếu một trong số chúng kết thúc với lỗi (giá trị trả về khác 0), thông tin sau sẽ không được thực thi. – mbq

+0

hoàn hảo cho tôi. Cảm ơn! – Riccardo

1

Viết một kịch bản với hai yêu cầu curl trong thứ tự mong muốn và chạy nó bằng cron, như

#!/bin/bash 
curl http://mysite.com/?update_=1 
curl http://mysite.com/?the_other_thing 
0

Tôi nghĩ rằng đây sử dụng khả năng tự nhiên hơn

//printing the links to a file 
$ echo "https://stackoverflow.com/questions/3110444/ 
https://stackoverflow.com/questions/8445445/ 
https://stackoverflow.com/questions/4875446/" > links_file.txt 


$ xargs curl < links_file.txt 

Tận hưởng!

yêu cầu
Các vấn đề liên quan