Skip to main content

Guidewire Workqueue

Guidewire WorkQueues

WorkQueues in Guidewire are used to manage and process large volumes of tasks asynchronously. They help in distributing the workload across multiple servers, ensuring efficient processing without overloading any single server.

How WorkQueues are Used

1. Task Distribution: WorkQueues distribute tasks across multiple servers, ensuring balanced load and efficient processing.
2. Asynchronous Processing: Tasks are processed in the background, allowing the main application to continue functioning without delays.
3. Scalability: They enable the system to handle large volumes of tasks by scaling the processing across multiple servers.

Gosu Code Implementation

Here's a basic example of how to implement a WorkQueue in Guidewire using Gosu:

1. Create a New Typecode: Define a new typecode in `BatchProcessType` typekey.

```gosu
<typecode name="MyNewCode" desc="Description of MyNewCode">
  <categories>
    <category name="Schedulable"/>
  </categories>
</typecode>
```

2. Create a WorkQueue Class: Extend `WorkQueueBase` to create your custom WorkQueue class.

```gosu
class MyWorkQueue extends WorkQueueBase<Message, StandardWorkItem> {
  private final static var _batchProcessType = BatchProcessType.TC_MYNEWCODE

  construct() {
    super(_batchProcessType, StandardWorkItem, Message)
  }

  override function findTargets(): Iterator<Message> {
    return Query.make(Message).select().iterator()
  }

  override function processWorkItem(p0: StandardWorkItem) {
    var bean = extractTarget(p0)
    // Your processing logic here
  }
}

3. Register the WorkQueue: Register your WorkQueue class in `work-queue.xml`.

<work-queue workQueueClass="example.MyWorkQueue" progressinterval="600000">
  <worker instances="1" batchsize="5"/>
</work-queue>


4. Schedule the WorkQueue: Optionally, register the new `BatchProcessType` in `scheduler-config.xml`.


<ProcessSchedule process="MyNewCode">
  <CronSchedule minutes="*/10"/>
</ProcessSchedule>


This setup ensures that your WorkQueue is properly configured to handle tasks asynchronously, improving the overall performance and scalability of your Guidewire application¹.


Comments

Popular posts from this blog

Java Swing MySql JDBC: insert data into database

Program import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*; public class insertswing implements ActionListener {   JFrame fr;JPanel po;   JLabel l1,l2,main;   JTextField tf1,tf2;   GridBagConstraints gbc;   GridBagLayout go;   JButton ok,exit; public insertswing(){ fr=new JFrame("New User Data "); Font f=new Font("Verdana",Font.BOLD,24); po=new JPanel(); fr.getContentPane().add(po); fr.setVisible(true); fr.setSize(1024,768); fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); po.setBackground(Color.WHITE); go=new GridBagLayout(); gbc=new GridBagConstraints(); po.setLayout(go); main=new JLabel("Enter User Details "); main.setFont(f); l1=new JLabel("Name  :");tf1=new JTextField(20); l2=new JLabel("User Name  :");tf2=new JTextField(20); ok=new JButton("Accept"); exit=new JButton("Exit"); gbc.anchor=GridBagConstraints.NORTH;gbc.gridx=5;gbc.gridy=0; go.s...

JSP and Servlet Form Submission without page refresh show results on the same page using Jquery AJAX

Code Snippet HTML Form  <form id='ajaxform' name='ajaxform' action='ajaxformexample' method='post'>  First Name: <input type='text' id='firstname' name='firstname' size='30' required/><br/>  Last Name: <input type='text' id='lastname' name='lastname' size='30'required/><br/>  Email:  <input type='email' id='emailid' name='emailid' size='30'required/><br/>  Password:  <input type='password' id='pwd' name='pwd' size='30'required/><br/>  <input type='Submit'/>   <div id='content'> </div> </form> the above HTML Form uses post method and url servlet redirect to " ajaxformexample " Javascript Code  var form = $('#ajaxform'); // id of form tag  form.submit(function () {  $.ajax({  ...

Guidewire Reinstatement and Rewrite

Guidewire Reinstatement, Rewrite Mid Term, Rewrite Full Term, and Rewrite New Term In Guidewire PolicyCenter, different types of policy transactions allow users to modify, renew, reinstate, or rewrite policies under various circumstances. Here̢۪s an explanation of Reinstatement, Rewrite Mid Term, Rewrite Full Term, and Rewrite New Term, along with their similarities, differences, and example scenarios. 1. Reinstatement Definition: - Reinstatement is a process that brings a canceled policy back into force. This is typically done after a policy has been canceled due to non-payment or other reasons, and the insurer agrees to reinstate the policy, often after the insured has met certain conditions (e.g., paying outstanding premiums). Scenario Example: - A policyholder misses their premium payment, and the policy is canceled. After paying the overdue amount, the insurer reinstates the policy without any changes to the original policy terms and conditions. Key Points: - The poli...