Điểm:0

Cập nhật trường mà không lưu nút

lá cờ ve

Tôi là người mới bắt đầu sử dụng Drupal, tôi muốn chèn một giá trị vào trường nút. Nhưng thay vì node->save() tôi muốn tránh bất kỳ hook presave nào và chèn nó trực tiếp bằng truy vấn sql. Tôi cũng có entity_id để chèn vào cột field_NAME_value, đây có phải là id nút không? Hoặc làm thế nào để tôi có được điều này? Hoặc có cách nào để thực hiện lưu nút mà không cần gọi presave ? Cảm ơn

lá cờ cn
Với sự tôn trọng tối đa, nếu bạn cần hỏi (tức là không thể tìm ra/trực giác) các cột trong các bảng này là gì, thì có lẽ cuối cùng bạn sẽ phá vỡ thứ gì đó bằng cách thao tác cơ sở dữ liệu theo cách thủ công. Nó có thể giúp giải quyết vấn đề của bạn và giải thích vấn đề xảy ra với (các) hook lưu trước đang chạy ở vị trí đầu tiên. Thay vào đó, bạn có thể dừng hành vi đó theo một cách tao nhã hơn và phù hợp với tương lai hơn.
Jaypan avatar
lá cờ de
Tôi phải đồng ý với Clive. Điều này là nguy hiểm, một phương pháp không phù hợp và bỏ qua các bước kiểm tra API. Tại sao bạn không muốn lưu nút?
jacksparrow avatar
lá cờ ve
@Clive Cảm ơn các bạn. Trên thực tế, tôi có một hoạt động hàng loạt (hơn 20 nghìn nút) đã hết thời gian, có một số lưu trữ trước hook được gọi và toàn bộ quá trình diễn ra chậm, vì vậy để tăng tốc độ này, tôi muốn thử và cập nhật trực tiếp db để giúp mọi thứ nhanh hơn .
lá cờ cn
Tôi muốn chấp nhận rằng lô sẽ chậm và thay vào đó hãy xem xét việc chia nó thành các phần nhỏ hơn - bạn không nên để thời gian chờ chạy một lô, đó là lý do tại sao chúng tồn tại ngay từ đầu. Nếu bạn làm cho số lượng nút trên mỗi thao tác nhỏ hơn, bạn thậm chí có thể thấy rằng toàn bộ quá trình chạy nhanh hơn về tổng thể, vì bạn sẽ không sử dụng nhiều tài nguyên cho mỗi yêu cầu
jacksparrow avatar
lá cờ ve
@Clive cảm ơn vì những suy nghĩ của bạn, chúng rất hữu ích. Khi chạy lô trong hook_deploy , có thời gian chờ sau 14400 giây đến từ Drush (nó được đặt trong drush.php) và cũng là thời gian chờ cơ sở dữ liệu, tôi không biết cách ghi đè điều này, đó là lý do tại sao tôi đã cố gắng giảm thời gian cho toàn bộ quá trình. Tôi nghĩ rằng tôi sẽ tạo một cron sẽ chạy 4 lần theo đợt và chia tổng số nút thành 4
lá cờ cn
Ồ, tôi hiểu rồi, điều này cũng có thể hữu ích sau đó: https://drupal.stackexchange.com/questions/280846/how-to-change-the-drush-default-timeout-of-14400
jacksparrow avatar
lá cờ ve
@Clive cảm ơn sự giúp đỡ của bạn!

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.