[sửa]Câu trả lời này dành cho Play 1. * series!
Bạn nên viết một module tùy chỉnh, sau đó lệnh của bạn đi vào commands.py
tập tin, ref: http://www.playframework.org/documentation/1.2.4/releasenotes-1.1#commands
Bạn có thể nhìn vào các module hiện có để có được cảm hứng, ví dụ như: https://github.com/sim51/logisima-play-yml/blob/master/commands.py
Về cơ bản bạn định nghĩa các lệnh bạn muốn và khởi chạy chúng từ phương thức "thực hiện", ví dụ:
COMMANDS = ['namespace:command']
def execute(**kargs):
command = kargs.get("command")
app = kargs.get("app")
args = kargs.get("args")
env = kargs.get("env")
if command == "namespace:command":
do_something()
nếu bạn muốn khởi chạy một cái gì đó java - thường là trường hợp! -:
def do_something():
java_cmd = app.java_cmd([], None, "play.modules.mymodule.MyClass", args)
try:
subprocess.call(java_cmd, env=os.environ)
except OSError:
print "Could not execute the java executable, please make sure the JAVA_HOME environment variable is set properly (the java executable should reside at JAVA_HOME/bin/java). "
sys.exit(-1)
print
Ps.
tạo ra một mô-đun tùy chỉnh dễ dàng như:
play new-module mymodule
Đây là một mồi: http://playframework.wordpress.com/2011/02/27/play-modules/, xem xét rằng chính thức Play! module documentation là khá hạn chế ở khía cạnh đó
chỉnh sửa
tôi nghĩ Tôi muốn thêm một chút thông tin:
befor e có thể thực hiện các lệnh của bạn, bạn phải BUILD mô-đun của bạn. Nó không chạy như phần còn lại của vở kịch với một biên dịch năng động.
play build-module mymodule
mô-đun mới/mô-đun xây dựng mong muốn mô-đun nằm ở gốc thư mục dự án, nhưng nếu bạn có nhiều thứ trở thành mớ hỗn độn. build-module module-srcs/mymodule
hoạt động hoàn toàn tốt.
Loại tác vụ nào bạn muốn chạy? Nếu bạn cần nó cho mục đích xây dựng chơi là khá tốt về nó. Bạn không cần bất kỳ công cụ nào khác. Nhưng nếu bạn cần lập kế hoạch cho một số nhiệm vụ như gửi thư, reindexing vs .. bạn có thể sử dụng lớp Job trong Play. – Luffy
Tất cả các loại nhiệm vụ không chuẩn: tạo tài liệu asciidoc, khởi tạo cơ sở dữ liệu và di chuyển, kiểm tra tự động không chuẩn, v.v. – qertoip
"tác vụ" hơi mơ hồ, mặc dù trong cào là cách chúng được gọi. Trong Play! họ là "lệnh" – Stefano